class Test
{
/*
. 2.类对象中:
. 2.1.对象成员变量的内存 随对象内存释放而释放
. 如 对象成员变量:a, b, c
. 2.2.对象成员变量指针指向的堆内存(new 出来的),需用 delete 在析构函数中释放
. 如 指针指向的堆内存:*b
. 3.类对象内存:
. 3.1.若类对象如下main 中 t1,则其对象内存存放于栈中
. 3.2.若类对象如下main 中 t2,则其对象内存存放于堆中
. 3.3.对象内存包括 a, b, c , 注:b指针变量指向的内存 不属于对象内存
*/
private:
int a = 1;
int *b = new int(2);
int c[5];
public:
Test() {};
~Test() { delete b; }
};
int main()
{
/*
. 1.函数中:
. 1.1.函数中 栈变量的内存 随函数运行结束 由系统自动释放
. 如 栈变量: t1, t2, a, b, c
. 1.2.函数中 栈变量指针指向的堆内存(new 出来的),需用 delete 手动释放
. 如 栈变量指向的堆内存:*t2, *b
*/
Test t1;
Test *t2 = new Test();
int a = 1;
int *b = new int(2);
int c[5];
c[0] = 1;
delete t2, b;
}
C++ 内存释放解析
最新推荐文章于 2024-07-16 12:06:31 发布