如果我有一个基本类型的数组,例如:int A[] = new int[10]; 如果不释放它会造成内存泄漏吗?
这是最近突然出现在我脑海中的一个问题。我确定我在学校学过它,但是我已经有很长时间没有使用 C/C++ 了,我记不清了。实际上,使用“new”创建任何对象都会将该对象放在堆上,必须在某个时候释放/销毁。我记得对对象数组执行此操作并且这样做很有意义,但我不记得需要释放 int 或 String 数组。那么原始数组也是这种情况吗?
谢谢
将
最佳答案
如果您使用 new
分配了一些东西,并且它没有交给智能指针或其他东西进行管理,您必须 delete
它。它是对象还是原始类型并不重要。
请注意此处的“免费”一词。您不应该对使用 new
分配的任何内容使用函数 free
。还要确保您了解 delete
和 delete[]
之间的区别。
更好的是,使用 std::vector
而不是动态数组,您不必担心删除任何内容。
关于c++ - 您是否需要取消分配基元数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861883/