#include <iostream>
int main()
{
int anything[] = {5};
int *something = new int;
*something = 5;
std::cout << &anything << "==" << &anything[0] << "==" << anything << std::endl;
std::cout << &something << "!=" << &something[0] << "==" << something << std::endl;
}
为什么&something
中的内存地址与&something[0]
和something
不同?虽然是动态分配,但是不明白为什么内存地址不一样。我尝试了不止一个值;这是同一件事。为简单起见,我在这里对两者都使用了一个值。
最佳答案
&something
是指针本身的内存地址(嘿,它需要将该值存储在某处!),而 &something[0]
是实际指针的地址存储你的东西的内存。
关于c++ - 动态分配中的内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642865/