Эта программа имеет ряд из файла и вводит матрицу n * n
(n
это число, взятое), который все матрицы равен 0.Сегментация ошибка при введении второй цикл
Проблема заключается в том, что если я просто один for
который только 00, 11, 22, ...
нет проблем, проблема возникает, когда я представляю второй for
. Программа возвращает мне нарушение сегмента.
#include <stdio.h>
int main(int argc, char* argv[])
{
FILE* fitxer;
int n, m, i,j;
int inc[n][n];
fitxer=fopen(argv[1], "rt");
if(fitxer == NULL)
{
fprintf(stderr, "ERROR: el fitxer %s no es pot obrir\n", argv[1]);
return 1;
}
else
{
if(!fscanf(fitxer, "%d %d", &n, &m));
printf("%d, %d\n", n, m);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
inc[i][j]=0;
printf("%d ", inc[i][j]);
}
}
printf("\n");
}
fclose(fitxer);
printf("Bien!\n");
return 0;
}
'INT вкл [п] [п];' <- 'n' не инициализирован, и почему у вас есть' if', который ничего не делает ('если (fscanf (fitxer! , "% d% d", & n, &m)); ')? –
Что такое значение n, когда' inc [n] [n] 'объявлено? Почему вы читаете' n' и 'm', и используете только' n' Когда объявляются 'n' и' inc', значение 'n' не определено. Присвоение значения' n' во время выполнения не может изменить выделение переменной 'inc [n] [n]'. –