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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 测试系统允许分配的最大堆内存相关的知识,希望对你有一定的参考价值。

#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);  //为什么要在这里释放??? pmalloc是空指针了
      }
      else
      {
        //free(pmalloc);  //为什么不在这里释放内存???
        break;
      }
    }
  }
  printf("maxium malloc size is %u bytes\n",maxnum);
  return 0;

}

以上是关于C++ 测试系统允许分配的最大堆内存的主要内容,如果未能解决你的问题,请参考以下文章

关于android中最大堆大小和可用内存的两个问题

JVM优化

C++。如何获得进程从一开始就分配的最大内存量?

C++堆内存分配

关于tomcat

C++ new申请内存,提示 内存不足