Título: Errores al pasar datos de un archivo a una lista Publicado por: palacio29 en 21 Junio 2020, 03:38 am Buenos Dias
Tengo un problema intentando pasar datos de un archivo a una lista. El archivo tiene el siguiente formato: %s,%d,%s (Nombre,DNI,Apellido). La cuestion es que al utilizar la función imprimir, solo me imprime el apellido del ultimo nodo de la lista, mientras que los demas valores los imprime bien Lo raro es que en la función agregar tambíen imprimo para ver que es lo que estoy pasando a los nodos y esta todo bien, asi que no se que puede estar pasando. Código
Título: Re: Errores al pasar datos de un archivo a una lista Publicado por: ThunderCls en 23 Junio 2020, 22:01 pm Tus variables "aux" y "txt2" en la funcion "cargalista" son variables locales, luego en tu codigo al hacer algo como
Código
simplemente estas copiando el puntero "aux" a tu miembro de estructura pero no el contenido al que apunta, lo que significa que una vez la funcion retorna y la memoria de las variables locales es liberada, ahora tendras lo que se conoce como dangling pointer (puntero colgante), apuntando a memoria desconocida. En este caso entonces necesitas hacer una copia de la memoria a donde apunta el puntero y no del puntero en si, puedes sustituir Código
por Código lo mismo con "datito.pais" y lo mismo en tu funcion "agregar" Código
por Código Saludos EDIT: Olvidé mencionar que igual no tiene mucho sentido y es mejor que te deshagas por completo de las variables “aux” y “txt2” y uses directamente los miembros de la estructura local “datito” EDIT2: En la funcion "agregar" estoy usando "shallow copy" con la estructura, pero en este caso supongo que una copia profunda es el camino a tomar Código por una llamada a la funcion Código
|