Скольжение вашего кода ...
int getNum();
int getLine();
int getMatrix();
int det1();
/* ... */
Эти объявления говорят компилятору: "эй, компилятор, пожалуйста, имейте в виду, что я буду вызывать функции с этими именами (getNum, getLine, getMatrix, det1,...) и они возвращают int
, но я не говорю вам, какие параметры они принимают. Просто доверяйте мне, когда я их использую "
Лучше, если вы используете прототип прямо при представлении функцийкомпилятору
int getNum(int value, FILE *infile);
int getLine(int line[], int lineSize, FILE *infile);
/* ... */
Эти объявления говорят компилятору: "эй, компилятор, пожалуйста, имейте в виду, что я вызову функцию с этими именами, они вернут int
и примут эти параметры. Если я сделаюошибка, пожаловайтесь, чтобы сообщить мне о моей ошибке "
... продолжение внутри main ()
/* ... */
int lineSize;
int error;
getLine(line,lineSize,infile);
/* ... */
вы объявили lineSize
, но не указали значение для переменной,Когда программа вызывает getLine, значение для lineSize почти наверняка является неправильным (это может даже привести к сбою компьютера даже перед вызовом функции).Инициализируйте (почти) все переменные перед их использованием.
/* ... */
int lineSize = 0;
int error = 0;
getLine(line,lineSize,infile);
/* ... */
Я не просмотрел больше ...
Предложение : проверьте уровень предупреждения компилятора и выполнитене запускать вашу программу, пока компиляция выдает предупреждения.