是否需要取消分配基元数组

Do you need to de-allocate an array of primitives?

本文关键字:数组 分配 取消 是否      更新时间:2023-10-16

如果我有一个基元类型的数组,例如:int a[]=new int[10];如果不释放,它会造成内存泄漏吗?

这是我最近突然想到的一个问题。我确信我是在学校里学的,但我已经很久没有使用C/C++了,我记不清了。事实上,创建任何带有"new"的对象都会将该对象放在堆上,在某个时刻必须释放/销毁该对象。我记得用对象数组这样做是有意义的,但我不记得需要释放int或String数组。那么,基元数组也是这种情况吗?

感谢

是否

如果你用new分配了一些东西,但它没有交给智能指针或其他东西进行管理,你就必须用delete来分配它。不管它是对象还是基元类型。

小心这里的"免费"一词。您不应该在分配给new的任何内容上使用函数free。还要确保您了解deletedelete[]之间的区别。

更好的是,使用std::vector而不是动态数组,您不必担心删除任何内容。