我有一个全局指针变量
char* pointer = new char[500];
/* some operations... */
有一个单独的 FreeGlobal() 函数可以释放指针,如下所示:
delete[] pointer;
第一次调用函数时,它实际上释放了内存,现在指针是一个坏指针。但是当我们多次调用它时,它会抛出异常。
有没有办法在再次调用 delete [] 之前检查指针变量?解决方法是什么?这是一种不好的做法吗?
谢谢。
最佳答案
删除后将指针设置为空。您不应多次尝试删除相同的数据。
正如 GRB 在这篇文章的评论中提到的,调用 delete[] NULL
是绝对安全的。
关于c++ - delete [] char *,内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408600/