相关疑难解决方法(0)

Malloc分配的内存多于RAM

我刚刚在一台12 MB的机器上执行了一个mallocs 13 MB的程序(QEMU Emulated!).不仅如此,我甚至浏览了记忆并填充了垃圾......

void 
large_mem(void) 
{
  #define LONGMEM  13631488
  long long *ptr = (long long *)malloc(LONGMEM);
  long long i;
  if(!ptr) {
     printf("%s(): array allocation of size %lld failed.\n",__func__,LONGMEM);
     ASSERT(0);
  }
  for(i = 0 ; i < LONGMEM ; i++ ) { 
    *(ptr+i)=i;
  }
  free(ptr);
}
Run Code Online (Sandbox Code Playgroud)

这怎么可能 ?我期待一个分段错误.

c c++ malloc memory-management

6
推荐指数
3
解决办法
3718
查看次数

标签 统计

c ×1

c++ ×1

malloc ×1

memory-management ×1