<分区>
以下代码在编译和运行时会出现段错误。这是为什么?
#include <stdio.h>
#include <limits.h>
int main(void)
{
int fat_array[INT_MAX];
return 0;
}
<分区>
以下代码在编译和运行时会出现段错误。这是为什么?
#include <stdio.h>
#include <limits.h>
int main(void)
{
int fat_array[INT_MAX];
return 0;
}
最佳答案
您要求的是分配给您大约 2,147,483,647
整数空间。每个整数通常为四个字节,因此 8,589,934,588
字节即 8 GB 的内存。这可能超出了允许单个进程保留的允许内存量,并且有充分的理由,因此您会收到错误消息。
关于c - 为什么声明一个长度为 INT_MAX 的 int 数组会产生段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53244002/