您好,我在从文件中填充数组时遇到问题。我第一次运行我的 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)));
在开始,但它使情况变得更糟。