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

举个例子:

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

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐