释放指针是让指针等于null还是delete指针
时间: 2023-11-02 12:31:55 浏览: 188
C++ 在堆上开辟与释放二维、三维指针详细解析
释放指针通常是指释放指针所指向的内存空间。如果使用 new 运算符申请了内存空间,则需要使用 delete 运算符释放该内存空间,否则会造成内存泄漏。在释放指针所指向的内存空间后,为了避免野指针的问题,建议将指针赋值为 nullptr(C++11 之前为 NULL),表示该指针不再指向任何内存空间。这样在后续使用该指针时就可以通过指针是否为 nullptr 来判断该指针是否有效,避免出现访问已释放内存空间的问题。需要注意的是,如果指针不是通过 new 运算符申请的内存空间,比如指向栈上的变量或者全局变量,那么不需要使用 delete 运算符释放该内存空间,也不需要将指针赋值为 nullptr,因为这些内存空间的释放会在变量作用域结束时自动释放。
阅读全文