gpt4 book ai didi

c - 堆栈段和未初始化数据段的区别

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

我试图交出 c 中的内存分配。

根据following link ,栈和未初始化数据段不同,本地函数的未初始化数据进入未初始化数据段。

如果是这种情况,那么在代码中包含未初始化局部变量的情况下,堆栈段中存储的是什么?它是空的吗?

最佳答案

我不推荐阅读“geeksforgeeks”教程。你有一些误解。

他们所谓的“未初始化数据”,.bss 段,实际上是存储静态存储持续时间的变量,零初始化。包括明确初始化为零值的任何此类变量。可以找到静态存储持续时间和不同公共(public)段的解释以及示例 here .

只有 具有静态存储持续时间的变量以.bss.data 结束。局部变量总是在堆栈或 CPU 寄存器中结束,无论它们是否被初始化。

(请注意,这些都不是由 ISO C 标准指定的,而是由行业事实上的标准指定的。)

关于c - 堆栈段和未初始化数据段的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301556/

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