.
2. Implemente las funciones crearTClientesABBVacio, ....
de Alejandro Blanco -
Número de respuestas: 8
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
Buenas noches,
Me
genera error "segmentation fault" cuando el codigo intenta ingresar el
segundo cliente en la recursion insertarTClienteTClientesABB.
Al
mismo tiempo, "make
t-clientesABB1-crear-insertar-imprimir-liberar" imprime todos los
clientes, similar al archivo
"clientesABB1-crear-insertar-imprimir-liberar.out", dando el siguiente
mensaje:
No le encuentro la vuelta.
Gracias,
En respuesta a Fernando Javier Acuña Gomez
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
Hola Fernando,
Ese error te está indicando que estas queriendo leer de una dirección de memoria que es NULL (0x0).
Te sugiero que revises, primero que nada, que estás creando correctamente el ABB vacío (recordá que en la letra se recomienda representarlo simplemente como un puntero a NULL).
Si no es eso te diría que revises con cuidado la lógica de tu función fijandote que estés asignando la memoria correctamente cuando creas un nuevo nodo y no dejes nada sin inicializar.
Saludos!
Yael
Ese error te está indicando que estas queriendo leer de una dirección de memoria que es NULL (0x0).
Te sugiero que revises, primero que nada, que estás creando correctamente el ABB vacío (recordá que en la letra se recomienda representarlo simplemente como un puntero a NULL).
Si no es eso te diría que revises con cuidado la lógica de tu función fijandote que estés asignando la memoria correctamente cuando creas un nuevo nodo y no dejes nada sin inicializar.
Saludos!
Yael
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
Buenas tardes,
El programa me da este error al intentar ejecutar insertarTClienteTClientesABB:
El programa me da este error al intentar ejecutar insertarTClienteTClientesABB:
Yo no modifique nada del principal y se supone que mi codigo deberia estar bien, es el mismo que el del pdf de arboles, no entiendo cual es el problema.
Muchas gracias.
En respuesta a Agustín Bricio Rey Aguiar
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
de Federico Bello Perez -
Hola Agustín,
En que caso de prueba es? Parece ser que no estas creando al cliente previo a agregarlo
Saludos
En que caso de prueba es? Parece ser que no estas creando al cliente previo a agregarlo
Saludos
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
de Felipe Rosa IbãÃEz -
Buenas tardes, tengo este problema de memoria y no sabria por que ocurre, ya le busque todas las vueltas, alguna sugerencia? gracias
En respuesta a Felipe Rosa IbãÃEz
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
de Federico Bello Perez -
Hola,
Es probable que el error este en las funciones de remover/liberar. En el remover del ABB, estas liberando la memoria asignada al cliente?
Saludos
Es probable que el error este en las funciones de remover/liberar. En el remover del ABB, estas liberando la memoria asignada al cliente?
Saludos
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
Buenas, logré avanzar en la implementación de todas las funciones de este módulo (menos la última) y todos los tests me muestran este error:
> ==80994== 1,624 (168 direct, 1,456 indirect) bytes in 7 blocks are definitely lost in loss record 2 of 2
> ==80994== at 0x4849013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==80994== by 0x10BF7F: insertarTClienteTClientesABB(rep_clientesABB*&, rep_cliente*) (clientesABB.cpp:15)
> ==80994== by 0x10AA7F: main_agregarClienteAClientesABB(rep_clientesABB*&, rep_cliente*&) (principal.cpp:500)
> ==80994== by 0x1099A0: main (principal.cpp:221)
> ==80994==
en la línea 15 solo tengo esto: clientesABB = new rep_clientesABB; correspondiente a la función insertarTClienteTClientesABB.
También probé con un puntero auxiliar para el nuevo nodo pero muestra lo mismo
> ==80994== 1,624 (168 direct, 1,456 indirect) bytes in 7 blocks are definitely lost in loss record 2 of 2
> ==80994== at 0x4849013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==80994== by 0x10BF7F: insertarTClienteTClientesABB(rep_clientesABB*&, rep_cliente*) (clientesABB.cpp:15)
> ==80994== by 0x10AA7F: main_agregarClienteAClientesABB(rep_clientesABB*&, rep_cliente*&) (principal.cpp:500)
> ==80994== by 0x1099A0: main (principal.cpp:221)
> ==80994==
en la línea 15 solo tengo esto: clientesABB = new rep_clientesABB; correspondiente a la función insertarTClienteTClientesABB.
También probé con un puntero auxiliar para el nuevo nodo pero muestra lo mismo
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesABBVacio, ....
Hice todos los casos de prueba del modulo cliente y me dieron bien pero ahora haciendo el modulo de clientesABB me sale este problema de memoria y no encuentro donde esta el error, hice los casos de prueba manualmente y me daban bien entonces imagine que el problema es en liberarTClientesABB pero no encuentro el error y queria consultar si es ahi que esta el error o puede estar en otro lado.