Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2011, 23:16
starfix
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 4 meses
Puntos: 25
error al usar delete con una clase

hola gente!, estoy usando el c++ Builder 2010 y my problema es cuando trato de usar delete para liberar el espacio de memoria que esta usando el puntero a la clase que cree....lo que estoy haciendo es lo siguiente:

- En el evento FormCreate creo un puntero a mi clase con el comando new

Código C++:
Ver original
  1. Listado= new Lista_Producto;
  2.  
  3. //el puntero Listado ya fue declarado en el archivo .h y Lista_Producto es la clase que cree

- En el evento FormDestroy del mismo formulario utilizo el comando delete en el puntero Listadp

Código C++:
Ver original
  1. delete Listado;

El programa compila, el problema es que me da el error access violation at address xxxxxxx in module 'BORLNDMM.DLL'. write of address xxxxxxx pero no estoy seguro si se libera el espacio de memoria de la variable.

La clase que cree cuenta tambien con un destructor:

Código C++:
Ver original
  1. Lista_Producto::~Lista_Producto(){
  2.  
  3. Producto *Aux= Primero;
  4.  
  5. while (Primero!= NULL){
  6.  
  7. Primero= Primero->Siguiente;
  8. delete Aux;
  9. Aux= Primero;
  10. }
  11. }

este es el caso de una lista enlazada, donde la clase Producto es la pila.

Tambien quisiera saber si al usar el comando delete lo que hace es utilizar el destructor de mi clase.


Saludos y gracias de antemano por las respuestas y la revision del problema