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

[SOLUCIONADO] ¿Puede esto resultar desastroso?

Estas en el tema de ¿Puede esto resultar desastroso? en el foro de C/C++ en Foros del Web. Una simple duda que tengo al manejar unas clases. supongamos que tengo como objetivo crear un dato tipo puntero a int que trabaje como un ...
  #1 (permalink)  
Antiguo 29/05/2013, 20:13
Avatar de Doommarine_Maxi  
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 10 meses
Puntos: 8
¿Puede esto resultar desastroso?

Una simple duda que tengo al manejar unas clases.

supongamos que tengo como objetivo crear un dato tipo puntero a int que trabaje como un array.

Código C++:
Ver original
  1. class Objeto
  2. {
  3.     public:
  4.         Objeto();
  5.         ~Objeto();
  6.     private:
  7.         int *dato;
  8. };
  9.  
  10. Objeto::Objeto()
  11. {
  12.     dato = NULL;
  13. }
  14. Objeto::~Objeto()
  15. {
  16.     delete [] dato;
  17. }

Podemos ver que esta clase no permite asignarle un valor ningun al puntero y simplemente lo crea como nulo, y cuando se destruye libera la memoria (que no se reservo ninguna) que el puntero dato utilizaba.
¿Esta practica sería desastrosa?.

¿Es una solución lógica hacer esto?:

Código C++:
Ver original
  1. Objeto::~Objeto()
  2. {
  3.     if (dato)
  4.         delete [] dato;
  5. }
  #2 (permalink)  
Antiguo 29/05/2013, 20:23
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: ¿Puede esto resultar desastroso?

Exacto! Asi arreglas el problema!
  #3 (permalink)  
Antiguo 29/05/2013, 20:26
Avatar de Doommarine_Maxi  
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 10 meses
Puntos: 8
Respuesta: ¿Puede esto resultar desastroso?

Cita:
Iniciado por sam90 Ver Mensaje
Exacto! Asi arreglas el problema!
Ah sam90, te extrañaba en este foro, bueno, culpa mía por mi inactividad. Muchas gracias, la verdad es que hace un tiempo me estaba volviendo loco para liberar memoria usando destructores.

De verdad te agradezco y es un gusto verte conectado.
  #4 (permalink)  
Antiguo 29/05/2013, 21:21
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: ¿Puede esto resultar desastroso?

Es completamente seguro borrar null, porque delete hace el chequeo de todas formas.

Pero después del delete no olvides asignar null al puntero esto en el caso que tu puntero no sea siempre null.

http://stackoverflow.com/questions/4...a-null-pointer

Etiquetas: delete, punteros
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 01:12.