在有关于内存分配和释放的代码中,容易发生这种问题。这个问题的描述就是内存已经被释放了,后面还继续使用

举个例子:

float* distance = new float [dimension];
for(int k=0;k<10;k++)
{
    for(int i=0;i<dimension;i++)
    {
    distance[i]=0;
    }
delete[] distance;
}

这段代码会在k=1时执行delete[] distance;出错,因为distance分配的内存在k=0是就已经被删除了,变成了野指针,所以第二次循环时无法再次删除。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐