如果我有一个基本类型的数组,例如:int A [] = new int [10]; 如果没有释放会产生内存泄漏吗?
这是最近突然出现的一个问题。我敢肯定我是在学校里学到的,但是因为我使用过C / C ++已经很久了,所以我记不起来了。实际上,使用“new”创建任何对象会将该对象放在堆上,该堆必须在某个时刻被释放/销毁。我记得用对象数组做这个,这样做是有意义的,但我永远不记得需要释放一个int或String数组。那么原始数组的情况也是如此吗?
感谢
威尔
答案 0 :(得分:4)
如果您使用new
分配了某些内容,并且未将其移交给智能指针或其他内容进行管理,则必须delete
。它是一个对象还是一个原始类型并不重要。
小心“#34; free"这里。对于使用free
分配的任何内容,您不应使用函数new
。另外,请务必了解delete
和delete[]
之间的区别。
更好的是,使用std::vector
代替动态数组,您不必担心删除任何内容。