Salve a tutti! mi stavo cimentando in un esercizio C ne quale devo leggere da file degli ingredienti con la loro quantità e tipo (litri,grammi,unità) e sommare il peso in grammi di tutti gli ingredienti,ma all'avvio del programma mi rileva un errore di stack non riesco a capire perchè Vi ringrazio in anticipo.
questa è la main:
codice:
int main (){
struct PesiSpecifici* pesi;
int n_pesi=0;
float numero;
pesi=(struct PesiSpecifici*)malloc(n_pesi*sizeof(struct PesiSpecifici));
char* file="ex7-es9.txt";
numero=PesoTotale(file,pesi,n_pesi);
printf("il peso totale per il dolce è:%f",numero);
free(pesi);
return 0;
}
questo è il mio file.c
codice:
float PesoTotale(char nomefile[],struct PesiSpecifici pesi[],int n_pesi){
FILE* file=fopen(nomefile,"r");
if(file==NULL){
printf("errore apertura file");
exit(1);
}
char c1;
float peso,peso1,totale=0;
while(!feof(file)){
n_pesi++;
pesi=realloc(pesi,n_pesi*sizeof(struct PesiSpecifici));
fscanf(file,"%s",&pesi[n_pesi-1].ingrediente);
fscanf(file,"%c",&c1);
fscanf(file,"%f",&peso);
if(c1=='l'){
peso1=peso*1000;
}
else if(c1=='u'){
peso1=peso*60;
}
else{
peso1=peso;
}
pesi[n_pesi-1].peso=peso;
totale+=pesi[n_pesi-1].peso;
}
fclose(file);
return totale;
}
e questo il file.h
codice:
Struct PesiSpecifici{
char ingrediente[32];
float peso;
};
float PesoTotale(char nomefile[],struct PesiSpecifici pesi[],int n_pesi);