Hola, tengo una duda respecto a la funcion "free" y sobre asignar NULL a un puntero ¿Cuando se hace cada cual? y ¿Cual es la diferencia?.
Por ejemplo, estoy definiendo mi arbol binario...
Código C:
Ver originaltypedef int tipoElem;
typedef struct nodo{
tipoElem info;
struct nodo *izq;
struct nodo *der;
}tNodo;
typedef struct{
tNodo *raiz;
int nElems;
}tABB;
// inicializa un ABB como vacío
void initTree (tABB *T){
T->raiz = NULL;
T->nElems = 0;
}
// elimina todos los elementos de un ABB T, dejándolo vacío
void clearHelp (tNodo *nodo){
if (nodo == NULL) return;
clearHelp(nodo->izq);
clearHelp(nodo->der);
}
void clear (tABB *T){
clearHelp(T->raiz);
T->raiz = NULL;
T->nElems = 0;
Seria lo mismo si en la funcion clear, en vez de usar free, a cada nodo asignarle NULL?
Gracias de antemano.
Saludos!