栈stack:是程序启动时候由程序留出的工作内存区
比如程序的局部变量,函数调用等都是从栈中获取,这个内存在需要的时候分配,不需要就释放
堆heap:是计算机空余的物理内存和硬盘空余空间的和.
但是它的获取不是自动的了,相比从栈中分配内存要慢些

解决方案 »

  1.   

        在栈中分配内存是由程序自动为你分配的,比如在你使用局部变量是,你所做的只是完成一个变量的定义,不需要去管他何时被销毁。而在堆中分配内存要你自己来完成,一般情况下使用关键字new 为你的变量在堆中分配空间,值得注意的是如果你使用了new 来分配内存,一定要在你不再需要该变量是用delete 将它在内存中的空间释放,否则它就会一直占用内存直到退出程序。当你需要为程序动态的分配变量时,就建议你在堆中分配。这样可以灵活的管理和使用内存资源。