malloc一次性最大能申请多大内存空间?
1个回答
展开全部
受到多重条件限制,不仅仅是@冯东所说的地址空间。
地址空间限制是有的,但是malloc通常情况下申请到的空间达不到地址空间上限。
内存碎片会影响到你“一次”申请到的最大内存空间。比如你有10M空间,申请两次2M,一次1M,一次5M没有问题。但如果你申请两次2M,一次4M,一次1M,释放4M,那么剩下的空间虽然够5M,但是由于已经不是连续的内存区域,malloc也会失败。
系统也会限制你的程序使用malloc申请到的最大内存。Windows下32位程序如果单纯看地址空间能有4G左右的内存可用,不过实际上系统会把其中2G的地址留给内核使用,所以你的程序最大能用2G的内存。
地址空间限制是有的,但是malloc通常情况下申请到的空间达不到地址空间上限。
内存碎片会影响到你“一次”申请到的最大内存空间。比如你有10M空间,申请两次2M,一次1M,一次5M没有问题。但如果你申请两次2M,一次4M,一次1M,释放4M,那么剩下的空间虽然够5M,但是由于已经不是连续的内存区域,malloc也会失败。
系统也会限制你的程序使用malloc申请到的最大内存。Windows下32位程序如果单纯看地址空间能有4G左右的内存可用,不过实际上系统会把其中2G的地址留给内核使用,所以你的程序最大能用2G的内存。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Jtti
2024-06-18 广告
2024-06-18 广告
导致香港服务器内存不足的原因比较多,Jtti总结了几点,具体如下:1、香港服务器应用程序池没有及时释放内存导致,应用程序池有一个默认回收的时间,到了这个时间就会自动释放内存,这个时间一般是1740分钟,而这种程度的时间可能会导致应用程序池无...
点击进入详情页
本回答由Jtti提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询