malloc一次性最大能申请多大内存空间?

 我来答
风纪社2毳
推荐于2016-07-26 · TA获得超过110个赞
知道答主
回答量:112
采纳率:0%
帮助的人:133万
展开全部
受到多重条件限制,不仅仅是@冯东所说的地址空间。
地址空间限制是有的,但是malloc通常情况下申请到的空间达不到地址空间上限。
内存碎片会影响到你“一次”申请到的最大内存空间。比如你有10M空间,申请两次2M,一次1M,一次5M没有问题。但如果你申请两次2M,一次4M,一次1M,释放4M,那么剩下的空间虽然够5M,但是由于已经不是连续的内存区域,malloc也会失败。
系统也会限制你的程序使用malloc申请到的最大内存。Windows下32位程序如果单纯看地址空间能有4G左右的内存可用,不过实际上系统会把其中2G的地址留给内核使用,所以你的程序最大能用2G的内存。除去其他开销,你能用malloc申请到的内存只有1.9G左右。
Jtti
2024-10-10 广告
Jtti主机拥有较高的性价比和稳定性,适用于企业级服务器。它可支持4至8个PIIIXeon(至强)或P4Xeon(至强)处理器,拥有独立的双PCI通道和内存扩展板设计,具有高内存带宽和大容量热插拔硬盘以及热插拔电源。此外,它的图形处理速度快... 点击进入详情页
本回答由Jtti提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式