Buenas gente, tengo un problemita, mi programa esta perdiendo memoria, sospecho que no estoy liberando bien donde tengo que hacerlo la situacion es la siguiente:
Tengo un arbol binario, donde en cada nodo del arbol tengo una lista enlazada y algun que otro dato estatico
este algoritmo libera la lista del nodo del arbol?? o libera una lista en una copia del nodo que esta en el stack ?
void liberarListasArbol(TAB* arbol){
//Recorrido pre-order del arbol
elArbol e;
int error1=10,error2=10,error3=10;
AB_ElemCte(*arbol,&e);
lsVaciar(e.lista);
e.lista=NULL;
AB_ModifCte(arbol,&e);
AB_MoverCte(arbol,IZQ,&error1);
if (error1==TRUE){
liberarListasArbol(arbol);
AB_MoverCte(arbol,PAD,&error3);
}
AB_MoverCte(arbol,DER,&error2);
if (error2==TRUE){
liberarListasArbol(arbol);
AB_MoverCte(arbol,PAD,&error3);
}
}
void liberarArbol(TAB* arbol){
int error=10;
AB_MoverCte(arbol,RAIZ,&error);
liberarListasArbol(arbol);
AB_Vaciar(arbol);
}
las funciones lsVaciar(tListaSimple *l) y AB_Vaciar(TAB* arbol) liberan la lista y el arbol pues son del libro y ya estan testeados, el problema es si libero bien las listas de los nodos del arbol
gracias ^^!