Динамическая память. Ошибка С2143 пишет отсутствие ";" перед "тип" (Visual Studio 2010) - C (СИ)
Формулировка задачи:
Это код filesIO.c
Чтение данных для выч. модуля программы из файла (вектора X, чисел N, M; inNm - имя файла).
Там 2 строчки вместе образуют ошибку компиляции (обозначенно комментом). Если комментировать одну строчку (любую из них), ошибки нет. Но вместе почему-то ошибка. Не понимаю, что не так?
#include <stdio.h>
#include "filesIO.h"
int readIn(char* inNm, float** X, int* N, int* M)
{
FILE* FL=fopen(inNm,"r");
if(FL)
{
if (fscanf(FL,"#begin file\n")==EOF)
{
fclose(FL);
return 1;
}
else
{
if (fscanf(FL,"N=%u;\n",N)==EOF)
{
fclose(FL);
return 1;
}
else
{
if (fscanf(FL,"M=%u;\n",M)==EOF)
{
fclose(FL);
return 1;
}
else
{
if (fscanf(FL,"x[i]:\n")==EOF)
{
fclose(FL);
return 1;
}
else
{
*X=malloc(sizeof(float)*(*N-1));//ОШИБКА КОМПИЛЯЦИИ
float* rowX=*X;//ОШИБКА КОМПИЛЯЦИИ
/*
for (int xCnt=0; xCnt<=*N-1; xCnt++)
{
}
*/
}
}
}
}
}
else
{
return 1;
}
}
В файле filesIO.h только сигнатура этой функции.
Решение задачи: «Динамическая память. Ошибка С2143 пишет отсутствие ";" перед "тип" (Visual Studio 2010)»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include "filesIO.h"
int readIn(char* inNm, float** X, int* N, int* M)
{
FILE* FL=fopen(inNm,"r");
if(FL)
{
if (fscanf(FL,"#begin file\n")==EOF)
{
fclose(FL);
return 1;
}
else
{
if (fscanf(FL,"N=%u;\n",N)==EOF)
{
fclose(FL);
return 1;
}
else
{
if (fscanf(FL,"M=%u;\n",M)==EOF)
{
fclose(FL);
return 1;
}
else
{
if (fscanf(FL,"x[i]:\n")==EOF)
{
fclose(FL);
return 1;
}
else
{
float* rowX;
int xCnt;
*X=(float*)malloc(sizeof(float)*(*N-1));
rowX=*X;
for (xCnt=0; xCnt<=*N-1; xCnt++)
{
if(fscanf(FL,"%f;\n",rowX)==EOF)
{
fclose(FL);
free(*X);
return 1;
}
rowX++;
}
fclose(FL);
return 0;
}
}
}
}
}
else
{
return 1;
}
}