You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下调用sys_brk扩展内存时是否会被零初始化?

关于sys_brk/brk扩展内存的初始化问题
  • 结论先行:这种零初始化的行为不是操作系统的保证,只是特定场景下的巧合
  • 具体细节:
    • 当你通过brk扩展的是从未被映射过的新物理页时,出于安全考虑,内核会自动把这部分内存清零(避免泄露其他进程曾使用过的数据),这是你看到零值的原因
    • 但如果是之前通过brk缩小堆空间后,再次扩展回原来的范围,这部分内存会保留之前使用过的旧数据,不会被重新清零
  • 建议:如果你的程序需要可靠的零初始化内存,不要依赖brk的这种偶然行为,应该使用calloc函数,或者手动调用memset来完成初始化

内容的提问来源于stack exchange,提问作者Andrew Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:27:04