PDA

Visualizza la versione completa : [C] Funzione malloc() che alloca polinomi


moles
03-03-2006, 22:06
Salve a tutti

un quesito...
chi sa scrivere una funzione con protoripo:

void libera_memoria(Polinomio p)
che prenda come parametro un polinomio i cui termini siano stati allocati uno alla volta con malloc() e li deallochi sempre uno alla volta con free()

grazie

murder eyes
04-03-2006, 15:08
se tu postassi come definita la struttura Polinomio, ti potremmo anche aiutare! :madai!?:

moles
04-03-2006, 20:14
typedef struct termine {
float coeff;
int esponente;
struct termine *next;
} Termine, *Polinomio;

murder eyes
05-03-2006, 11:03
Originariamente inviato da moles
typedef struct termine {
float coeff;
int esponente;
struct termine *next;
} Termine, *Polinomio;

Beh dato che ogni elemento contiene un puntatore all'elemento successivo (una sorta di lista concatenata) quello che ti conviene fare e' di definirti una funziona ricorsiva del tipo.



void libera_memoria(Polinomio*p)
{
if(p->next==NULL) return;
else
{
libera_memoria(p->next);
free(p->next);
}
}


Dovrebbe andare bene, cmq se vedi che c' qualche errore(non credo) sappi che deve essere una funzione ricorsiva che arriva all'ultimo elemento del Polinomio e quando non ci sono altri termini allora comincia a tornare indietro.

Loading