class person {
public:
person(int age)
{
m_age=new int(age);
}
int *m_age;
}
来观察这个代码: 本意我是想在堆区开启一个空间 存放age,然后用类中的m-age指针变量去指向堆区的age,但是一定要注意写法:
如果 你写成: m_age=&age;
看似是age的地址赋给了指针变量;但是存在一个至关重要的问题;age是一个局部变量,他随着函数的运行结束,内存就被释放了。那么问题来了 我此时的m_age是不是接收不到了成悬空指针了。
所以 一定要写成m_age=new int (age); 这样可以避免释放的问题!