2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Sofia Tito Virgilio Rodriguez -
Número de respuestas: 10
En respuesta a Sofia Tito Virgilio Rodriguez

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Bruno Antonio Labadie Echudi -
Buenas! Una consulta, en la función agregarEnTRefugio debería checkear si ese perro ya existe? O quizá hay alguna precondición que me estoy saltando. Gracias!
En respuesta a Bruno Antonio Labadie Echudi

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Guillermo Dufort -
Hola Bruno,

No es una precondición porque no está especificado sobre la función en el .h.
En principio te diría que no lo chequees, porque no vamos a crear casos de prueba en los que eso suceda.

Saludos,
Guillermo
En respuesta a Sofia Tito Virgilio Rodriguez

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Mariano Daniel Ottonelli Orero -

Buenas tardes, tenemos la teoría de que el problema está alojado en liberarTRefugio, el error entiendo es de rango de array? no estoy seguro de igual manera no entiendo como solucionarlo dado que creemos que estamos manejando bien los rangos. Saludos.
image%20%281%29.png

En respuesta a Mariano Daniel Ottonelli Orero

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Ignacio Remersaro Coronel -
Buenas,
por lo que veo el error está ocurriendo, es que al tratar de imprimir los perros de un refugio, en algún caso la memoria aun no fue asignada para un perro. Por lo tanto, es probable que te estés pasando del tope, sobre el arreglo de perros.

Saludos,
Ignacio.
En respuesta a Sofia Tito Virgilio Rodriguez

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Santiago Machado Trinidad -
Buenas noches, a mi me estaba apareciendo la misma salida que al compañero anterior. Despues de probar algunos ajustes logré que no me saliera mas eso pero todavia no logro resolverlo.
Cuando hago el caso de prueba con ./principal < test/refugio1-crear-agregar-imprimir-liberar y luego el diff no me pone nada, que segun la letra del laboratorio significa que esta bien. Pero cuando hago make t-refugio1-crear-agregar-imprimir-liberar me pone un mensaje que no entiendo como podría arreglarlo para que me ponga ---Bien---.
Gracias!

Adjunto Captura de pantalla 2025-03-18 185752.png
En respuesta a Santiago Machado Trinidad

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Ignacio Remersaro Coronel -
Hola Santiago,
El error que esta ocurriendo es que no estas liberando bien la memoria, queda 'perdida', lo bueno del error es que te dice en qué momento se originó esta memoria pérdida, o sea un perro.
Probablemente en la función de liberar refugio no estés recorriendo completamente el arreglo de perros, y esta queda perdida al liberar la variable del refugio.
Luego para los tests te recomiendo que uses make test/salidas/refugio1-crear-agregar-imprimir-liberar.diff para verlo en el archivo.

Saludos,
Ignacio
En respuesta a Sofia Tito Virgilio Rodriguez

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de MartãN Benitez De Los Santos -

Estoy intentando implementar la función agregarEnTRefugio pero al usar la función compararTFechas creada anteriormente me da este error diciendo que el rep_perro no está bien definido, al implementar las funciones de perro.cpp anteriormente todos los casos de prueba me daban bien así que no sé cuál podría ser el problemaimage.png

En respuesta a MartãN Benitez De Los Santos

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de MartãN Benitez De Los Santos -
Logre resolver este error al usar las funciones declaradas en perro.cpp, pero ahora me aparece una falla de segmentacion al intentar ejecutar el primer caso de prueba del refugio
image.png
En respuesta a MartãN Benitez De Los Santos

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de MartãN Benitez De Los Santos -
Alguien sabe cuál podría ser la causa de este error? Muchas gracias
En respuesta a MartãN Benitez De Los Santos

Re: 2. Implementar las funciones crearTRefugio, liberarTRefugio, agregarEnTRefugio y imprimirTRefugio. Ejecutar el caso de prueba refugio1-crear-agregar-imprimir-liberar.

de Federico Rivero -
Hola Martín,

Ese error lo que indica es que estás tratando de acceder a una posición de memoria que no fue reservada. Probablemente estés accediendo a un puntero sin inicializar o que apunta a NULL.

Sobre el final te dice que el programa terminó en un punto específico, y te da el stacktrace, es decir, las funciones anidadas donde se dio el error. Te dice que el error está en la función fechaIngresoTPerro, invocada por agregarEnTRefugio. Lo más probable es que estés pasando un puntero sin inicializar o con valor NULL a fechaIngresoTPerro. Es decir, probablemente no estás manejando bien el valor del tope del arreglo y estás intenando comparar contra una posición no cargada.
 
Saludos,
Federico