Devo leggere un file intero riga per riga.. utilizzo questo codice..
int loadPerm(FILE* ingresso, nodo_t** r){
int n;
n=0;
if(ingresso==NULL)
return -1;
nodo_t** p=r;
char* stringa=(char*)malloc(sizeof(char)*(LRECORD+2));
if(stringa==NULL){
free(stringa);
return -1;
}
stringa=fgets(stringa,LRECORD+2,ingresso);
while(stringa!=NULL){
printf("String: %s \n", stringa);
printf("Sto aggiungendo %s \n",stringa);
permesso_t* record=convertiRecord(stringa);
stringa=fgets(stringa,LRECORD+2,ingresso);
printf("STRINGA: %s \n",stringa);
free(record);
}
free(stringa);
return n;
}
il mio problema e' che (giustamente) la free sulla stringa non viene fatta in quanto una free su un puntatore a NULL non ha effetto,pero' la memoria mi rimane comunque allocata, come posso fare a deallocare "stringa"?