C++关于内存释放的问题....简单

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:22:13
class A{
}

如果
A* a1 = new a();
这样可以用delete a1来释放,
但是如果
A a2;
a2怎样释放?
自动会回收吗?

a2不用释放,因为它不是指针。
会自动回收,和普通变量一样,如:int a,从来没人要释放a吧,就是这个道理,把类当作普通类型对待就会清楚一些。

超过作用域自动释放。你那个是在堆里,变量在栈里

只要记住一点:你new出去的,你就一定要delete其它不用管。

new操作符申请的内存是在堆中的,要手动delete。而a2是一般变量,申请的内存是在栈中,系统会自动释放。

A a2和int a3的内存处理方式是一样的。