<分区>
#include <stdio.h>
int main()
{
int n[100000];
int t,q;
int i,j;
char s[3][100000];
char qstr[3][200][100000];
printf("Success\n");
}
在上面的代码中,qstr
的大小约为 57.22 MiB。当仍有超过 1 GiB 的空闲内存可用时,为什么会出现段错误?
如果我将 qstr
的声明更改为 qstr[3][200][10000]
程序执行起来没有问题,实际上会打印“成功”,然后退出.在这种情况下,“qstr”仅占用约 5.7 MiB。
我有两个问题:
我怎么知道限制?
鉴于我有更多可用内存,我该如何利用它?