加载器将二进制文件分段加载到内存中:文本(常量)、数据、代码。不需要从 0 开始,而且 C 存在访问 null 周围的 bug 的问题,这样a[i]
甚至是危险的。这允许(在某些处理器上)拦截分段错误。
这将是 C 运行时引入从 0 开始的线性地址空间。当 C 是操作系统的实现语言时,这是可以想象的。但没有任何作用;让堆从 0 开始。内存模型是段之一。代码段可能受到保护,免遭某些处理器的修改。
分段分配发生在 C 运行时管理的内存块中。
我可能会补充一点,物理 0 及以上数字通常由操作系统本身使用。
归档时间: |
|
查看次数: |
1518 次 |
最近记录: |