代码改变世界

C++ 测试系统允许分配的最大堆内存

2016-05-22 17:53  慢跑的小菜  阅读(1249)  评论(1编辑  收藏  举报

#include<stdio.h>

#include<stdlib.h>

unsigned int maxnum = 0;

int main()
{

  unsigned int blocksize[3]={1024*1024,1024,1};
  int i,count;
  for (i = 0; i < 3; i++)
  {
    for(count=1;;count++)
    {
      void* pmalloc = malloc(maxnum + blocksize[i] * count );
      if (pmalloc)  //非空 增加申请 再释放
      {
        maxnum = maxnum + blocksize[i] * count;
        free(pmalloc); 
      }
      else
      {
        break;
      }
    }
  }
  printf("maxium malloc size is %u bytes\n",maxnum);
  return 0;

}