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