【发布时间】:2016-01-29 13:18:57
【问题描述】:
我正在尝试将动态数组的地址分配给另一个动态数组,即我拥有的两个指针的地址:
Someclass *pointer = new Someclass[10];
Someclass *pointer2 = new Someclass[10];
我现在想将指针的地址分配给指针2:
pointer2 = pointer;
测试地址是否相同:
cout << &pointer2 << endl;
cout << &pointer << endl;
我的输出:
0x28fed4
0x28fb98
所以他们的地址不一样。是什么赋予了?我不是通过键入pointer2 = pointer 将它们分配给相同的地址吗?如果不是,那么这个语句是做什么的?
我尝试用一个没有类和对象的更简单的程序来做到这一点:
int main()
{
int * pointer1;
int * pointer2;
pointer1 = pointer2;
cout << &pointer1 << endl;
cout << &pointer2 << endl;
}
同样的,他们的地址还是不同的?这可能是我误解的基本内容,有人可以清除它吗?谢谢。
【问题讨论】:
-
它们是不同的对象,所以它们的地址不同。顺便说一句,您有内存泄漏。
-
尝试打印没有
&。 P.S 你的头像图片规则!!! -
如果您使用
int i=0; int j=1; i = j,您是否希望&i和&j变得相同?