【发布时间】:2013-02-05 20:16:36
【问题描述】:
我正在学习OOP,遇到了这个问题:
如果我们这样做:
A* a = new A;
new 运算符从堆中为变量 a 找到一个空间。我想知道那个变量所在的地址。
问题 1
那个地址是哪一个?这两者有什么区别?
cout << a;
cout << &a;
问题2(主要)
假设我 不 delete 指针。程序退出。只要指针没有被类的析构函数破坏,当我再次运行程序时,我可以使用它的地址(例如 0x0035fa24)取回该对象吗?如果是,怎么做?
【问题讨论】:
-
Q1:第一个。 Q2:不是。程序的另一个实例只是另一个进程,每个进程的地址空间是分开的。您的对象已泄漏,并且消失了。永远。
标签: c++ oop pointers heap-memory