Título: Segmentation fault Publicado por: xJajavierx en 3 Febrero 2020, 08:21 am Hola, alguien me podría ayudar a solucionar este "problema" de segmentation fault por favor
Este es el codigo: Código
Título: Re: Segmentation fault Publicado por: Eternal Idol en 3 Febrero 2020, 12:29 pm Primero el codigo no compila (aunque por el error que ves entiendo que el problema es de copiar y pegar) y segundo arreglo_alumnos siempre va a tener un valor indefinido.
(23) : warning C4700: uninitialized local variable 'arreglo_alumnos' used iniciar_arreglo_alumnos(arreglo_alumnos,cant); Aca: Código
arreglo_alumnos es simplemente una variable LOCAL (al estar pasandola por valor y no por referencia) y la asignacion se pierde en cuanto salis del ambito de la funcion. O pasas doble puntero o puntero por referencia para poder efectivamente asignarle el valor a la variable declarada en main AL TENER LA DIRECCION DEL MISMO EN iniciar_arreglo_alumnos y no a donde apunta (que en tu caso es a cualquier lado al no estar inicializada la variable). Código
Asi veras con claridad como iniciar_arreglo_alumnos no hace nada util. Título: Re: Segmentation fault Publicado por: CalgaryCorpus en 6 Febrero 2020, 13:58 pm El codigo parece tener varias cosas que se pueden remover.
La funcion iniciar_arreglo_alumnos ademas de no servir el proposito, no parece ser necesaria. Eliminala, reemplaza su invocacion por la peticion explicita de memoria. Las variables prom y matr en el main no tienen sentido definirlas alli, pues cambian su valor, pero no se usan al interior de la funcion. Definelas al interior de la funcion imprimir. Pareciera mejor tener otra funcion que asigne esos valores y que la funcion imprimir solo muestre estos valores. No se ve bien que una funcion encargada de imprimir asigne los valores tambien. Las funciones aleatorio20, matricula y promedio10 dicen retornar int, pero no retornan nada. Podrias en vez de modificar el parametro que reciben, borrar el parametro que reciben, que no reciban nada, y hacer return del valor que calculan. Con esto incluso no vas a necesitar las variables locales prom y matr, puedes asignar lo retornado directamente a los campos (lineas 47 y siguientes). |