Ответ 1
Вы переполняете стек. 2 * 1024 * 1024 * sizeof(int)
много для большинства систем.
Простейшим решением было бы сделать массивы static
.
static int a[N][N];
static int b[N][N];
Другие методы:
- Сделать массивы глобальными (это по существу то же самое, что и выше)
-
Используйте
malloc
в цикле и, конечно, запомнитеfree
int **a = malloc(N * sizeof *a); for (i = 0; i < N; i++) a[i] = malloc(N * sizeof *a[i]);