Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ZedGe en 16 Enero 2012, 01:00 am



Título: Problema con Constructor y Destructor
Publicado por: ZedGe en 16 Enero 2012, 01:00 am
Tengo un codigo que lee un txt, creo un arreglo para leerlo

Código:
char dato[3][30];  //String que guarda las instrucciones

este almacenará 3 datos de máximo 30 caracteres
le asigno los valores asi

Código:
strcpy(dato[i], ptrToken);  //Se guarda la primera instrucción

ptrToken es el dato que lee

y el destructor que tengo es este

Código:
 for(int k = 0; k < 3; k++)
    {
         delete [] dato[k];
        std::cout<<"Deleting row #" << k << '\n';
    }

El programa o me dice violacion de segmento o me tira errores con códigos incomprensibles...

Uso C++ en linux por consola


Título: Re: Problema con Constructor y Destructor
Publicado por: BlackZeroX en 16 Enero 2012, 01:14 am
No debes usar delete con variables automaticas ya que delete solo se ocupa cuando reservas memoria con new, es decir, lo que haces esta mal, si lo que quieres es vaciar o setear un bloque puedes usar memset... o quisas sea esta la forma en que lo quieres hacer...

Código
  1.  
  2.    char *szCadenas[3] = {NULL, NULL, NULL};
  3.    szCadenas[0] = new char[30];
  4.    szCadenas[1] = new char[30];
  5.    szCadenas[2] = new char[30];
  6.    delete[] szCadenas[0];
  7.    delete[] szCadenas[1];
  8.    delete[] szCadenas[2];
  9.  
  10.  

Dulces Lunas!¡.


Título: Re: Problema con Constructor y Destructor
Publicado por: ZedGe en 16 Enero 2012, 02:03 am
muchas gracias.. he puesto esto

Código:
memset(dato,0,0);


Título: Re: Problema con Constructor y Destructor
Publicado por: BlackZeroX en 16 Enero 2012, 10:06 am
memset(dato,0,0);

Si lo dejas asi, NO HARA NADA... revisa la documentación.

Dulces Lunas!¡.