[C con Clase] error con asignación dinamica de memoria

Salvador Pozo salvador en conclase.net
Vie Nov 26 17:35:00 CET 2010


Hola:

Se me ocurren dos posibilidades de error.

La primera, que estás usando new char[strlen(lines)].
strlen te devuelve la longitud de la cadena, sin contar el nulo de terminación. Si tienes que almacenar la cadena <lines> tendrás que añadir un carácter, es decir, strlen(lines)+1.

El segundo es el que comenta en compañero en el mensaje anterior. Posiblemente no has sobrecargado el constructor copia, y la memoria de objetos temporales se destruye antes del punto en el que se usa. Recuerda la regla de oro cuando se crean clases que usan memoria dinámica: sobrecargar siempre el constructor copia". Aunque no lo uses explícitamente en tu programa, el compilador puede que lo use de forma implícita sin que te des cuenta.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase