我们知道局部变量在具有主函数和所有其他函数的堆栈内存中。当我打印主函数的地址,局部变量的地址和malloc的地址时,看来局部变量更接近于malloc地址,而不是主要功能。为什么?
码:

int g;

int main(int argc, char** argv) {
    int l;
    printf("Adress of main fuction: %d\n", main);
    printf("Adress of a global variable(g): %d\n", &g);
    printf("Adress of a local variable(l): %d\n", &l);
    printf("malloc: %d\n", malloc(10));
}

最佳答案

堆栈,代码和数据的确切布局完全由编译器决定。

这是实现定义的行为,因此它可能因一个编译器而异。

关于c - C中的局部变量似乎在堆栈内存附近,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40109106/

10-14 12:47