Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/04/2020, 07:41
prueba230683
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años, 7 meses
Puntos: 68
Respuesta: validar un miembro de una estructura en c

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 original
  1. #define NUM_LIBRERIAS 1

Código C:
Ver original
  1. struct libreria listadoL[NUM_LIBRERIAS];

Código C:
Ver original
  1. void mostrarResultados(struct libreria l[]){
  2.    
  3.     for(int x = 0; x < NUM_LIBRERIAS; x++){
  4.         printf("\nlargo: %d\n", strlen(l[x].nombre));
  5.         printf("\nLibreria: %s", l[x].nombre);
  6.         printf("\nTelefono: %s\n", l[x].telefono);
  7.  
  8.         for(int i=0; i<2; i++){
  9.             printf("\nCodigo Libro: %d", l[x].reg_libro[i].codigo);
  10.             printf("\nTitulo: %s", l[x].reg_libro[i].titulo);
  11.  
  12.             printf("\n");
  13.         }
  14.  
  15.     }
  16. }

Última edición por prueba230683; 06/04/2020 a las 07:47