Another student asked me what could be wrong with his C code. I successfully reproduced the erroneous behavior and have completely no idea why this segfaults. Consider this tiny C programm:
#include <stdio.h>
int main(void) {
int N = 590;
double A[N][N];
double B[N][N];
double C[N][N];
printf("done");
}
- Set
N
to a value <= 590:
This runs without errors, with or without output. - set
N
to a value > 590:- Runs flawlessy with output line removed.
- Compile and run with output: segmentation fault
What's the reason for this? Can anybody explain?