l 我在 64 位机器上运行 C++ 程序。该程序从不同的类动态创建对象。当我使用 cout 打印出指向这些对象的指针的值(不是取消引用)时,一些对象的地址是 48 位,而其他对象的地址是 28 位!我读过一些处理器目前只支持 48 位,但为什么在某些情况下我会得到 28 位的输出?那有什么意思?!
编辑:
这是一个大项目的一部分。因此,我将无法发布确切的代码。但这就是基本上正在发生的事情。我确实意识到需要删除对象以避免内存泄漏。
ClassA *pA = new ClassA();
ClassB *pB = new ClassB();
cout << "Address of ClassA object = " << pA << " , Address of ClassB object = " << pB << endl;
pA = new ClassA();
pB = new ClassB();
cout << "Address of ClassA object = " << pA << " , Address of ClassB object = " << pB << endl;
现在我得到的输出如下:
ClassA 对象的地址 = 0x7fcda0001150 ,ClassB 对象的地址 = 0x19f1160
ClassA 对象的地址 = 0x26c77c0 ,ClassB 对象的地址 = 0x1aba400