本文主要是介绍内存中的堆区和栈区,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于上面的程序来说,当这个程序编译之后成为.obj文件,是放在只读区的;
char s中的s是变量所以是存放在栈中,但是对于s的赋值“abc”是一个字符串常量,所以“abc\0”是存放在只读区的.
静态局部变量在静态存储区内分配存储单元。在程序整个运行期间都不释放。虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的,也就是说,在其他函数中它是“不可见”的。
内存泄漏意思是说程序运行结束,但是内存中的数据还在,没有被释放。
深复制:当有指针数据成员,必须用深复制,使其使用堆区的空间:
假如一个类中有一个成员为指针,那么当这个类的对象进行释放的时候应该在这个类中的析构函数中声明释放成员指针所指向的内存,这样的话释放这个对象就会同时释放掉他的成员指针所指向的内存空间!
这篇关于内存中的堆区和栈区的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!