En C, las variables locales que no inicialices a un valor determinado, tendrán valores indefinidos.
Indefinidos no significa ni vacío ni undefined ni NULL como tal, significa que puede ser cualquier cosa que se encuentre en la memoria de tu computador en ese momento. De ahí que obtengas resultados tan extraños en la segunda iteración.
La pregunta es, ¿por qué declaras struct libreria listadoL[
2] cuando solamente utilizas un único struct librería? No es mejor hacer algo así:
Código C:
Ver originalstruct libreria listadoL[NUM_LIBRERIAS];
Código C:
Ver originalvoid mostrarResultados(struct libreria l[]){
for(int x = 0; x < NUM_LIBRERIAS; x++){
printf("\nLibreria: %s", l
[x
].
nombre); printf("\nTelefono: %s\n", l
[x
].
telefono);
for(int i=0; i<2; i++){
printf("\nCodigo Libro: %d", l
[x
].
reg_libro[i
].
codigo); printf("\nTitulo: %s", l
[x
].
reg_libro[i
].
titulo);
}
}
}