如何从堆中删除变量?

时间:2013-01-21 12:08:43

标签: c++ visual-c++ heap free

我一直在做一些研究,但仍无法找到问题的解决方案。 据我所知,当我们在函数之外声明变量时,它们会在堆中分配,并且在执行结束之前不会释放该内存;除非我们使用delete函数专门执行此操作。我已经尝试了以下函数来释放在代码开头声明的变量,但没有一个工作(在dbgdel.cpp中得到调试错误):deletedelete [],{{1} }。 我做错了什么?

我将粘贴到代码的摘要版本下面。任何帮助表示赞赏。谢谢!

(我知道全局变量通常不适合编程,但不是我的代码,我只是试图修复它。)

free()

3 个答案:

答案 0 :(得分:6)

  

据我所知,当我在每个函数之外声明变量时,它们在堆中分配

事实并非如此。一般情况下,如果您分别使用deletedelete[]分配内存,则只需拨打newnew []

答案 1 :(得分:4)

  1. 没有堆(在C ++中)。
  2. 执行结束时释放所有内存。
  3. deletenewdelete[]您的new[]
  4. void main错误(main必须返回int)。
  5. 就是这样。

答案 2 :(得分:3)

你没有。运行时将为您完成。根据经验,您只需delete/delete[] new/new[]分配的内容。

另请注意,全局变量不是在堆上分配,而是在静态内存中分配。