Ejercicio 8

Ejercicio 8

de Federico Gonzalez Lage -
Número de respuestas: 1

Buenas noches,
Resolviendo este ejercicio me surgieron algunas dudas.

Este es el algoritmo que se me ocurrió:

void borrar (Directorios D, char* C) {     DUDA: Es equivalente ese encabezado a : void borrar (Directorios D, char C [ ]) ? 
bool borrado = false;
borrarRec (D, C);
}

void borrarRec (Directorios & D, char* C) {
if (D != NULL && !borrado) {
if (strEq(D->nombreDirectorio,C) && D->pH == NULL) { strEq es una función que se asume implementada; da true si y solo si dos strings
Directorios aux = D; son iguales.
D = D->sH;
borrarSubDirectorio(aux);
borrado = true;
}
else {
borrarRec (D->pH, C);
borrarRec (D->sH, C);
}
}
}     

void borrarSubDirectorio (Directorios & aux) {
if (aux != NULL) {
borrarSubDirectorio (aux->pH);
borrarSubDirectorio (aux->sH);
delete aux -> [] nombreDirectorio; (?) Presuponiendo que todos los punteros a char son arreglos de caracteres.

while (aux->listaArchivos != NULL) {
listaArchivos aBorrar = aux->listaArchivos; ¿Crea una nueva variable en cada iteración? ¿O se crea una sola y luego se reutiliza?
aux->listaArchivos = aux->listaArchivos->sig; (Duda que nunca me he resuelto)
delete aBorrar -> [] nombreArchivo;
delete aBorrar -> [] contenidoArchivo;
delete aBorrar;
}
delete aux->listaArchivos;
delete aux;
}
}

Mis  dudas están en negrita al lado del código, pero más que nada lo que no entiendo es cómo borrar correctamente el directorio que se pide borrar llamado nom_dir, porque los directorios son struct's con varios campos, entre ellos nombreArchivo y contenidoArchivo, que son punteros a char, o más específicamente al primer char de una cadena de caracteres si lo estoy entendiendo bien. Quiero saber si está bien borrarlos de esa forma asumiendo que son arreglos.

Se me hace que darles solo delete a todos esos punteros a char, estaría mal.

Muchas gracias por su tiempo.

Saludos.

En respuesta a Federico Gonzalez Lage

Re: Ejercicio 8

de Federico Gonzalez Lage -
Ya pude evacuar la mayoría de mis dudas gracias una compañera, además de detectar múltiples errores en el código por no haberse visualizado bien la estructura a borrar.
Lo más importante, la forma de borrar es: delete [ ] aBorrar -> contenidoArchivo (por ejemplo)