当前位置:   article > 正文

测试系统可供malloc()使用的内存空间大小_malloc一次最大能申请多大的空间

malloc一次最大能申请多大的空间

一般程序中使用malloc()函数进行地址空间的申请,那么malloc()到底最大可以申请多少内存呢?可以利用下面这个小程序来测试malloc最大内存申请数量(当然这个数量跟你系统拥有的内存有关)。

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. unsigned int maximum = 0;
  4. int main()
  5. {
  6. unsigned int alloc_size[] = { 1024 * 1024, 1024, 1};
  7. int i,count;
  8. for( i = 0; i < 3; i++ )
  9. {
  10. for( count = 1; ; count++)
  11. {
  12. void * block = malloc( maximum + alloc_size[i] * count);
  13. if(block)
  14. {
  15. maximum += alloc_size[i] * count;
  16. free(block);
  17. }
  18. else
  19. {
  20. break;
  21. }
  22. }
  23. }
  24. printf("maximum alloc size = %u bytes \n", maximum);
  25. return 0;
  26. }

我的ubuntu系统有2G内存,运行结果如下:

maximum alloc size = 1769398183 bytes(1.6X G)


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/333331
推荐阅读
  

闽ICP备14008679号