【发布时间】:2020-01-05 02:35:49
【问题描述】:
我有以下程序:
#include <stdio.h>
#include <sys/resource.h>
int main()
{
// Anything over ~8MB fails
short int big[4000000];
printf("%lu\n", sizeof(big));
}
ulimit 表明我有无限的内存可供程序使用。但是,如果我尝试分配更多内存,则会出现错误:
short int big[6000000];
$ gcc main.c -o main.out && ./main.out
Segmentation fault: 11
我需要在 C 程序中更改什么以便分配,例如 1GB 数组吗?
【问题讨论】: