[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