Динамическая память. Ошибка С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;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы