为什么Windows上C ++应用程序中的变量地址不同

时间:2018-09-25 06:50:24

标签: winapi

我编写了一个真正简单的hello world应用程序并定义了一个变量,但是每次启动该应用程序时,变量(&i)的地址都不同。我可以知道原因吗?

int i = 23444;
int b = 0;
std::cout << &i;
std::cout << "Hello World!\n"; 
std::cin >> b;
std::cout << i;

1 个答案:

答案 0 :(得分:1)

变量的地址是相对于调用线程的堆栈的,该线程在创建线程时动态分配。因此,每次运行程序时,程序的堆栈都会获得不同的基本内存地址。