以下代码在编译和运行时出现分段错误。为什么会这样?
#include <stdio.h>
#include <limits.h>
int main(void)
{
int fat_array[INT_MAX];
return 0;
}
您所请求的是为您分配大约2,147,483,647
个整数空间。每个整数通常是四个字节,所以这是8,589,934,588
字节,即8GB的内存。这可能超过了允许单个进程保留的内存量,而且有充分的理由,所以您会得到一个错误。