LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1239|回复: 2

关于malloc分配地址空间的疑问?

[复制链接]
发表于 2008-5-28 16:43:15 | 显示全部楼层 |阅读模式
向大家请教2个问题:
1。在用户模式下malloc返回的指针如 void *aa=malloc(100);返回的指针长度是多长的呢?是32位还是64位?
2。在用户模式下malloc的地址虚拟地址空间是连续的马?即假设从第i页的中间开始,会首先分配第i页的生于部分,然后分配第i+1页,再i+2页马?
发表于 2008-5-29 07:57:42 | 显示全部楼层
1. 指针的长度应该取决于是 32 位还是 64 位 Linux。
2. 在应用程序看来,malloc 分配的一块内存当然是连续的。
回复 支持 反对

使用道具 举报

发表于 2008-5-29 08:38:46 | 显示全部楼层
说的不错
我补充一下:
这个从操作系统原理上来说应用程序看起来连续的空间实际上物理上不一定连续,现代操作系统的内存存储管理不但分段还分页,这为节省内存空间提高使用效率提供了便利。
具体可以google搜索“内存分页”,有win2k和一个编写dos分页程序的例子。保护模式运行的linux也应是一样分页的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表