こんにちは、ファイルから配列を埋めるのに問題があります。初めて 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)));
最初はそうでしたが、それはそれをさらに悪化させました。