0

こんにちは、ファイルから配列を埋めるのに問題があります。初めて nacitaj 関数を実行すると、うまく機能します。しかし、もう一度呼び出すと、出力値がおかしいです。nacitaj 関数が複数回呼び出された後に、suma[] の値を上書きするようにプログラムに指示する方法はありますか?

int nacitaj(float *suma, int *k) {
FILE *fr;
int i=0;
int j=1;
int o=1;
char p[30];
j=*k;


if ((fr = fopen("FILE.TXT","r")) == NULL){
    printf("NULL\n");
}
else {
    while(feof(fr) == 0){
        fgets(p,30,fr);
        fgets(p,30,fr);
        fgets(p,30,fr);
        fgets(p,30,fr);
        fgets(p,30,fr);
        i++;
    }

    suma=((float*)malloc(i*sizeof (float))); 
    rewind(fr);

    while(feof(fr) == 0){
        fgets(p,30,fr);
        fgets(p,30,fr);
        fgets(p,30,fr);
        fscanf(fr,"%f\n", &suma[j]);
        fgets(p,30,fr);
        fgets(p,30,fr);
        j++;

    }

}
*k=j;
fclose(fr);
return suma;
}

主要

if(c=='N'){
            suma=nacitaj(suma,&k);
        }

やってみました

suma=((float*)malloc(0*sizeof (float)));

最初はそうでしたが、それはそれをさらに悪化させました。

4

1 に答える 1