【发布时间】:2020-05-25 05:12:18
【问题描述】:
我试图将文件中的前两个数字作为变量存储,然后将文件中的剩余数字存储在数组中。
以下代码在较小的输入上工作正常,但我想知道 - 为什么它在较大的输入文件上出错?在返回 Segmentation Fault: 11 之前,我可以打印出 for 循环中的所有值。
FILE * fp;
fp = fopen("test.text", "r");
int i;
fscanf(fp, "%d", &i);
int param1 = i;
fscanf(fp, "%d", &i);
int param2 = i;
int list[param2];
int j;
for (j = 0; j < param2; j++) {
fscanf(fp, "%d", &list[j]);
}
fclose(fp);
【问题讨论】:
-
可能是因为
param2太大,所以int list[param2];无法分配 -
@ForceBru
d最多为 2^14。
标签: c memory segmentation-fault scanf