Test Foro de elhacker.net SMF 2.1

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

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
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 (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!¡.
Título: Re: Problema con Constructor y Destructor
Publicado por: ZedGe en 16 Enero 2012, 02:03 AM
muchas gracias.. he puesto esto

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!¡.