Título: [Estructuras] ¿Por qué me muestra basura? Publicado por: Zodiak98 en 22 Mayo 2016, 22:57 pm Verán, el programa que tengo que hacer es el siguiente.
Leer N cantidad de estudiantes, y dentro de otra estructura sus notas (parte teórica y parte práctica), como un máximo de 5 calificaciones para cada alumno. Es decir, si digo que son 3 notas prácticas serán 3 notas prácticas para todos los alumnos, lo mismo para la parte teórica. En fin, todo chévere, pero cuando intento mostrar las calificaciones que ingresé previamente, me muestra valores basura. ¿Alguien podría echarme una mano? El programa lo estoy haciendo en Code::Blocks. Acá les dejo el código fuente que llevo hasta ahora: Código
Título: Re: [Estructuras] ¿Por qué me muestra basura? Publicado por: engel lex en 22 Mayo 2016, 23:07 pm estás accediendo mal a la estructura, el array es la estructura... por lo menos
Código: cout << "Ingrese nombre de estudiante [" << (id + 1) << "]: "; pero a cual estudiante te ferienes? al primero? al último? tienes que decirle Código: cout << "Ingrese nombre de estudiante [" << (id + 1) << "]: "; por lo menos en Código: cin >> estudiante.notas.practicos[pr]; estás tratando de acceder a la posición pr de la variable prácticos de el struct notas de un estudiante indefinido Título: Re: [Estructuras] ¿Por qué me muestra basura? Publicado por: Zodiak98 en 22 Mayo 2016, 23:35 pm Eso lo indico en el main, es decir, la función leerEstudiante recibe por referencia a sólo un único estudiante.
Y en la función main le indicó cuál de ellos dentro del arreglo de Estudiantes. Código
Ahí le estoy pasando cada uno de los estudiantes a la función llenarEstudiante. Y como es por referencia, estoy modificando el elemento original. Lo mismo con la función mostrarEstudiante, no entiendo por qué me muestra esa basura. :/ Título: Re: [Estructuras] ¿Por qué me muestra basura? Publicado por: engel lex en 22 Mayo 2016, 23:51 pm dime la linea donde te muestra basura mejor -.-
Título: Re: [Estructuras] ¿Por qué me muestra basura? Publicado por: Zodiak98 en 23 Mayo 2016, 00:02 am Acá:
Código
Eso se encuentra dentro de la función mostrarEstudiante, y dicha función recibe a sólo un único elemento, y luego en el main llamo a esa función enviándole cada elemento del arreglo Estudiante. Código
Título: Re: [Estructuras] ¿Por qué me muestra basura? Publicado por: engel lex en 23 Mayo 2016, 00:13 am no veo la memoria reservada en los array dentro de notas, lo probable es que no sepa donde guardar los datos (es raro que no te haya dado error fuera de indice)
en llenar tienes que inicializar esos int[] Código: estudiante.notas.practicos = new int[nPracticos]; creo que allí está el error, ya que en c++ lo array no son dinamicos, tienes que reasignar su tamaño, tu simplemente dejaste dicho que eran punteros y al escribir simplemente hacen un overflow Título: Re: [Estructuras] ¿Por qué me muestra basura? Publicado por: Zodiak98 en 23 Mayo 2016, 00:59 am Damn, no sabía eso. Ya se solucionó el problema, ¡gracias! :)
|