Динамическая память. Ошибка С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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д