是否需要取消分配基元数组
Do you need to de-allocate an array of primitives?
如果我有一个基元类型的数组,例如:int a[]=new int[10];如果不释放,它会造成内存泄漏吗?
这是我最近突然想到的一个问题。我确信我是在学校里学的,但我已经很久没有使用C/C++了,我记不清了。事实上,创建任何带有"new"的对象都会将该对象放在堆上,在某个时刻必须释放/销毁该对象。我记得用对象数组这样做是有意义的,但我不记得需要释放int或String数组。那么,基元数组也是这种情况吗?
感谢
是否
如果你用new
分配了一些东西,但它没有交给智能指针或其他东西进行管理,你就必须用delete
来分配它。不管它是对象还是基元类型。
小心这里的"免费"一词。您不应该在分配给new
的任何内容上使用函数free
。还要确保您了解delete
和delete[]
之间的区别。
更好的是,使用std::vector
而不是动态数组,您不必担心删除任何内容。
相关文章:
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 如何通过 malloc 为队列数组分配内存?
- 具有动态数组分配的OpenMP嵌套循环
- 如何为数组结构的数组分配内存
- 如何为结构数组分配内存?
- cpp 数组 - 分配常量索引有效,而非常量索引不起作用
- 如何为字符指针数组分配内存?
- 在 C++ 中初始化后的数组分配
- 将数据分配给了数组分配,但程序显示了以缓冲区超支的输出
- C++函数问题中的数组分配
- 子数组分配:使用聚合对象错误的预期"{...}"进行初始化
- 为什么我的指针数组分配不起作用
- std::堆栈和堆栈溢出错误的数组分配
- 在 c++ 中是否有通过声明"implicit"数组分配?
- 在 c++ 中为 2-D "Dynamically Created"数组分配值时遇到问题
- 如何为C++数组分配指向第一个元素的指针
- 字符数组分配
- 将数组分配在固定数量的线程之间
- 为构造函数中的数组分配值