malloc可分配的最大空间
2014-05-14 17:39
330 查看
#include <stdio.h> #include <stdlib.h> #include <sys/mman.h> void* malloc111(size_t nbytes);//映射 int main(){ unsigned maximum = 0; unsigned int size[] = {1024*1024, 1024, 1}; int i,count; for(i=0;i<3;i++){ for(count=1;;++count){ void *block=malloc(maximum + size[i]*count); if(block){ maximum += size[i]*count; free(block); } else{ printf("i = %d\n", i); printf("maximum = %u\n", maximum); break; } } } printf("maximum = %u\n", maximum); printf("maximum = %lfG\n", maximum/1024.0/1024.0/1024.0); void *tmp = malloc111(100); if(tmp == 0){ printf("NO \n"); goto bk; } printf("OK \n"); bk: return 0; } void* malloc111(size_t nbytes){ void *tmp = mmap(0, nbytes, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); if(MAP_FAILED == tmp){ return 0; } return tmp; }
result:
i = 0
maximum = 3743416320
i = 1
maximum = 3817154560
i = 2
maximum = 3817275346
maximum = 3817275346
maximum = 3.555115G
OK
注:i为1和2时,每次结果一般不同,这和当前系统运行有关。
相关文章推荐
- 【C语言】检测malloc最大能分配多少空间。
- 堆栈溢出问题 调试到位置(test dword ptr [eax],eax ; probe page.)局部数组变量定义所分配的最大空间为1M
- malloc分配空间必须首先初始化
- malloc一次性最大能申请多大内存空间
- 定义两个整型指针,分别用malloc、calloc对其分配空间保存3个元素,malloc分配的空间用memset清零,随机对数组进行赋值随机范围1-3,赋值后用memcmp比较两个数组。如果相同打印G
- 定义两个整型指针,分别用malloc、calloc对其分配空间保存3个元素,malloc分配的空间用memset清零,随机对数组进行赋值随机范围1-3,赋值后用memcmp比较两个数组。如果相同打印G
- 堆栈溢出问题 调试到位置(test dword ptr [eax],eax ; probe page.)局部数组变量定义所分配的最大空间为1M
- 程序猿之---C语言细节17(求time_t的最大值、strlen求的是长度、malloc分配字符内存细节、switch的中default细节)
- new/malloc 分配二维数组存储空间
- malloc分配给指针空间与之间建立数组的区别
- 使用malloc分别分配2KB的空间,然后用realloc调整为6KB的内存空间,打印指针地址
- malloc分配的内存空间是连续的吗
- 3 定义两个整型指针,分别用malloc、calloc对其分配空间保存3个元素,malloc分配的空间用memset清零,随机对数组进行赋值随机范围1-3,赋值后用memcmp比较两个数组。如果相同
- malloc(0)参数为0的情况,malloc分配最小空间,free真的释放内存了?
- experiment : 在私有堆和默认进程堆中, 测试能分配的堆空间总和, 每次能分配的最大堆空间
- 【总结】malloc最多能分配多大的内存空间?
- iPhone中管理malloc分配的内存空间
- 3.定义两个整型指针,分别用malloc、calloc对其分配空间保存3个元素,malloc分配的空间用memset清零,随机对数组进行赋值随机范围1-3,赋值后用memcmp比较两个数组。如果相同打
- 定义两个整型指针,分别用malloc、calloc对其分配空间保存3个元素,malloc分配的空间用memset清零,随机对数组进行赋值随机范围1-3,赋值后用memcmp比较两个数组。如果相同打印G
- 深入理解malloc/free以及malloc(0)空间分配