c++ - 在 `delete` 之后重用一个指针

标签 c++ memory-management

执行以下操作是否安全和/或良好做法?

//NewList is a member function of a class
void NewList(int size){

delete[] list; //list is a member variable; an already initialized dynamic array.

list=new ListObject[size];

}

我基本上放弃了以前的数组,因为我将使用不同的数据存储在类中,因此需要一个新的 list 来存储关于新数据的其他信息。如果这不是好的做法,还有什么替代方案?

最佳答案

这取决于。每次用new创建一个对象,用完一定要删除。在给定的函数中,您正在删除以创建一个新函数,但是一旦您完成了该对象,您是否也在删除?创建对象并在对象超出范围时让系统删除它会更安全。

如果可能的话,我会避免,因为如果不正确删除,可能会造成内存泄漏。

关于c++ - 在 `delete` 之后重用一个指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379457/

相关文章:

ruby-on-rails - 如何在内存上测量 ActiveRecord 的大小?

c++ - NUMA 感知 Cpp 容器

c++ - 在不同线程上发布工作时如何将信号连接到 boost::asio::io_service?

objective-c - 您如何看待 Objective-C 中每次迭代保留计数并调用释放的这段代码?

c++ - 原始套接字中的连接功能?

c++ - 阵列访问期间的段错误

memory-management - 存储 Vec 和 Slice 有什么区别?

memory-management - Linux内核中的内存映射

c++ - 将 vector 末尾的删除优化为调整大小

c++ - 重载运算符 : Matrix Addition