Alguien sabe decirme porque esta mal esta función de borrado?
void BorrarLista()
{ item actual;
if (comienzo == NULL)
return;
while (comienzo != NULL) {
actual = comienzo;
comienzo = actual->sig;
delete actual;
}
}
Es una sencilla función para borrar una lista dinámica, pero no se porque el
Visual c++ tiene que eliminar datos de memoria cuando cierro el programa que
estoy probando. Al parecer algún elemento de la
lista no se borra del todo de memoria.
Por si el problema viniera de como cargo la lista:
void Agregar(dato n) {
item actual;
item anterior;
item nuevo = new elem;
nuevo->d = n;
if (comienzo == NULL) {
comienzo = nuevo;
nuevo->sig = NULL;
return;
}
for (actual = comienzo;actual->sig != NULL;actual = actual->sig) {
if (actual->d.tiempo > n.tiempo) break;
anterior = actual;
}
if (actual->d.tiempo > n.tiempo) {
if (actual == comienzo) {
nuevo->sig = actual;
comienzo = nuevo;
return;
}
nuevo->sig = anterior->sig;
anterior->sig = nuevo;
return;
}
nuevo->sig = NULL;
actual->sig = nuevo;
}
Todo sea que no venga de aqúí el problema, ya no entendería nada.
Leer las respuestas