Foros del Web » Programación para mayores de 30 ;) » C/C++ »

liberar memoria de objetos

Estas en el tema de liberar memoria de objetos en el foro de C/C++ en Foros del Web. Hola, saludos a todos, he descubierto este foro y soy nuevo por aquí. Soy novato con C++ pero tengo una duda que seguramente es una ...
  #1 (permalink)  
Antiguo 14/12/2007, 06:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
liberar memoria de objetos

Hola,
saludos a todos, he descubierto este foro y soy nuevo por aquí.

Soy novato con C++ pero tengo una duda que seguramente es una tonteria, pero que sé resolverla.

Tengo un array como el siguiente:

pthread_t tid[MAX_ELEMENTOS];

Bueno, creo una serie de hilos y todo me funciona correctamente. Llamo a la funcion pthread_create para crear los hilos.

Antes de llamar a esta funcion miro el valor de tid[i] y es NULL. Pero cuando termina la ejecución de mis hilos miro el valor de tid[i] y no es null. Y bueno no se como liberar ese objeto para que vuelva a ser null y pueda volver a utilizarlo.

No se si me he explicado bien, espero que si.

Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 14/12/2007, 08:01
Avatar de Solenbum  
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: liberar memoria de objetos

como vas mirar el valor de tid[i] si es null o no si yo ahi veo un vector de estatico de algo (lo dinamico sera lo que guarda dentro de cada pthread_t supongo), de vete a saber que, un objeto..clases sera... una estructura, etc.

o haces un vector de punteros de pthread_t, o tal como esta:
la propia ?clase¿ pthread_t tiene 1 metodo de crear y de eliminar (y que el de crear compruebe si existe lo que guardas para eliminarlo y volver a crearlo o que tengas un metodo comprobar si existe y llames a crear, eliminar en orden, aunque eso ya es lo menos importante, a gusto del programador)
  #3 (permalink)  
Antiguo 14/12/2007, 09:51
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: liberar memoria de objetos

De hecho puedes usarlo nuevamente una vez que el thread ha terminado su ejecución. Si acaso usar la función pthread_detach, aparte de eso no debes hacer nada más (hasta donde me acuerdo).

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #4 (permalink)  
Antiguo 14/12/2007, 17:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: liberar memoria de objetos

gracias por responder.
Bueno, pues lo he probado y debe de ser algo muy raro. Compilando en windows funciona perfectamente, pero en linux, cuando lo puteo falla. Dice segmentation fault. Creo que por alguna razon el sistema no ha liberado totalmente los recursos cuando yo los intento utilizar de nuevo. Por eso lo de liberarlos completamente antes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:35.