我正在尝试将动态数组的地址分配给另一个动态数组,即我有两个指针的地址:
Someclass *pointer = new Someclass[10];
Someclass *pointer2 = new Someclass[10];
我现在想将指针的地址分配给pointer2:
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;
}
同样,他们的地址仍然不同?这可能是我误解的基本内容,有人可以清理它吗?感谢。
答案 0 :(得分:5)
您正在打印指针的地址,而不是指针指向的地址!
试试这个:
&
当您使用&pointer
时,您会使用地址,因此[INFO] : ADD :: TEXT
[INFO] : ADD :: TEXT
[INFO] : ADD :: FORM
[INFO] : ADD :: FILTER
[INFO] : ADD :: SIDE
是指针的地址,而不是它指向的内容。是的,即使是指针也可以指向它们的指针!