gpt4 book ai didi

c++ - 编译时内存分配

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:50 25 4
gpt4 key购买 nike

这似乎是一个非常基本的问题,但它与编译器的工作原理有关。函数局部变量的内存分配顺序是什么。

假设我有一个函数

int a,b;
int c1;
int c,d;
int c2;
cout<<&a<<endl;
cout<<&b<<endl;
cout<<&c<<endl;
cout<<&d<<endl;
cout<<&c1<<endl;
cout<<&c2<<endl;
int f;
cout<<&f<<endl;

这里 f 获取最低内存地址(相对于其他变量),就好像初始化堆栈是这样构建的:

a b c1 c d c2 f

然后分配内存

这可能会发生,因为编译有多个阶段,这是其中之一。

这个栈的建立对应的是哪个阶段,内存是在哪个阶段分配的?

最佳答案

无法保证这些变量将占据什么位置 - 定义顺序只会影响构造函数/析构函数调用的顺序。

关于c++ - 编译时内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com