c++ - delete [] char *,内存问题

标签 c++

我有一个全局指针变量

char* pointer = new char[500];
/* some operations... */

有一个单独的 FreeGlobal() 函数可以释放指针,如下所示:

delete[] pointer;

第一次调用函数时,它实际上释放了内存,现在指针是一个坏指针。但是当我们多次调用它时,它会抛出异常。

有没有办法在再次调用 delete [] 之前检查指针变量?解决方法是什么?这是一种不好的做法吗?

谢谢。

最佳答案

删除后将指针设置为空。您不应多次尝试删除相同的数据。

正如 GRB 在这篇文章的评论中提到的,调用 delete[] NULL 是绝对安全的。

关于c++ - delete [] char *,内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408600/

相关文章:

c++ - 使用 std::function 初始化匿名类成员变量

c++ - 访问 protected 方法的方法指针?

c++ - const 成员堆栈与堆

c++ - 将原始指针分配给 auto_ptr

c++ - 如何重置 high_resolution_clock::time_point

c++ - 我试图在 char 数组的中间添加一个空格。不确定如何正确移动它

c++ - 从 Qt 程序运行外部进程,有一些变化

C++ 二维数组和指针引用

c++ - 指向数组的指针未按预期工作

c++ - 为您的程序添加类似 C/C++ 的预处理能力