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);