另一个学生问我他的 C 代码有什么问题。我成功地重现了错误行为,完全不知道为什么会出现这种段错误。考虑这个微型 C 程序:
#include <stdio.h>
int main(void) {
int N = 590;
double A[N][N];
double B[N][N];
double C[N][N];
printf("done");
}
- 设置
N
为 <= 590 的值:
运行时不会出现错误,无论有无输出。 - 设置
N
为 > 590 的值:- 删除输出线后运行完美。
- 编译并运行输出:分段错误
这是什么原因?谁能解释一下?