在测试中,我在程序的bss部分中运行内存,在我写入任何内容之前,始终将其初始化为零。这是否是巧合,还是系统在将这些内存页面交给我之前“清理”这些内存页面?我在Ubuntu上使用nasm汇编程序(如果可能会有所不同)。Linux程序集; bss节内存初始化为0?
3
A
回答
3
您的应用程序的可执行文件(ELF)有一个BSS段的大小信息,当它启动时,内核为BSS段分配一块内存,并将其清除为0,这由ABI(应用程序二进制接口)定义,如此你不必担心在不同的机器上有不同的东西。
0
是BSS被初始化为零。
相关问题
- 1. free()的内存初始化为0
- 2. .bss部分不是零初始化
- 3. 如果一个全局变量被初始化为0,它会去BSS吗?
- 4. 结构初始化为0
- 5. 0初始化的C++内置类型
- 6. 释放内存初始化
- 7. 初始化字节*集合在C#
- 8. 初始化多维数组:{0}与{{{0}}}
- 9. 大阵列初始化为0
- 10. 将int初始化为0还是不?
- 11. 强制int初始化为0 msvC++
- 12. 初始化类具有{0}
- 13. 集合初始化
- 14. 将数组初始化为程序集中的特定值(x86)
- 15. 龙目岛内部集合初始化
- 16. Python程序的初始化
- 17. ::初始化程序(NameError)
- 18. 程序集是否有初始化和/或终止程序?
- 19. Python类初始化 - 属性内存
- 20. AVAudioPlayer初始化和内存管理
- 21. 非.bss未初始化的数据部分
- 22. 为后续初始化存储jQuery插件初始化设置?
- 23. 如何让MSVC将未初始化的数据放入.bss中?
- 24. 初始化NSMutableDictionary时iPhone内存泄漏
- 25. Ctor初始化程序:自初始化会导致崩溃?
- 26. 通过初始化程序列表初始化QList
- 27. 在初始化程序列表中初始化unordered_map
- 28. 使用超类初始化程序初始化一个类
- 29. 错误信息:未初始化::初始化程序:: MEMCACHE
- 30. 从初始化程序列表初始化,但没有{{{{{{{{...}}}}}}}}?
你有任何规范*(在小写的意义上)*参考吗? – 2010-11-28 17:14:52
好吧,man gcc说初始化为零的变量放在BSS中,所以为了使它合法,BSS必须初始化为零。 – lijie 2010-11-28 17:17:15