Problema con Constructor y Destructor

Iniciado por ZedGe, 16 Enero 2012, 01:00 AM

0 Miembros y 1 Visitante están viendo este tema.

ZedGe

Tengo un codigo que lee un txt, creo un arreglo para leerlo

char dato[3][30];  //String que guarda las instrucciones

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

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

ptrToken es el dato que lee

y el destructor que tengo es este

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

BlackZeroX

#1
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 (cpp) [Seleccionar]


    char *szCadenas[3] = {NULL, NULL, NULL};
    szCadenas[0] = new char[30];
    szCadenas[1] = new char[30];
    szCadenas[2] = new char[30];
    delete[] szCadenas[0];
    delete[] szCadenas[1];
    delete[] szCadenas[2];



Dulces Lunas!¡.
The Dark Shadow is my passion.

ZedGe

muchas gracias.. he puesto esto

memset(dato,0,0);

BlackZeroX

memset(dato,0,0);

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

Dulces Lunas!¡.
The Dark Shadow is my passion.