赞
踩
一般程序中使用malloc()函数进行地址空间的申请,那么malloc()到底最大可以申请多少内存呢?可以利用下面这个小程序来测试malloc最大内存申请数量(当然这个数量跟你系统拥有的内存有关)。
- #include<stdio.h>
- #include<stdlib.h>
-
- unsigned int maximum = 0;
- int main()
- {
- unsigned int alloc_size[] = { 1024 * 1024, 1024, 1};
- int i,count;
- for( i = 0; i < 3; i++ )
- {
- for( count = 1; ; count++)
- {
- void * block = malloc( maximum + alloc_size[i] * count);
- if(block)
- {
- maximum += alloc_size[i] * count;
- free(block);
- }
- else
- {
- break;
- }
- }
- }
- printf("maximum alloc size = %u bytes \n", maximum);
- return 0;
- }

我的ubuntu系统有2G内存,运行结果如下:
maximum alloc size = 1769398183 bytes(1.6X G)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。