gpt4 book ai didi

c - 初始化后未初始化的全局变量去哪里了?

转载 作者:太空狗 更新时间:2023-10-29 17:01:21 27 4
gpt4 key购买 nike

我在学习的时候遇到了一个小问题。我知道 C 中未初始化的全局变量被分配给可执行 ELF 文件中的 .bss 部分。但是当我开始使用它们时会发生什么?IE。他们是在堆上还是在其他地方找到了位置?

我试图通过打印(仍未初始化的)全局变量的地址来找出答案

printf("%x",&glbl);

它总是返回相同的值 0x80495bc... 为什么?

最佳答案

当操作系统加载您的程序时,它会从您程序的地址空间分配足够的存储空间来存储 .bss 部分中的所有内容,并将所有内存清零。当您分配或读取变量的地址或获取变量的地址时,您是在操纵分配的内存,以便为 .bss 部分提供存储空间。

关于c - 初始化后未初始化的全局变量去哪里了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1260363/

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