Cita:
Empezado por NEG1414
AnsiString *VectorErroneo
// (en el constructor)
VectorErroneo = new AnsiString[30]
//En otro procedimiento
for (int i=0;i<25;i++)
{
VectorErroneo= NULL;
}
|
Ten en cuenta que si dejas punteros sin destruir, consumen recursos de memoria. Si destruyes un puntero ya destruido, tendrás un error, puesto que su valor, y por tanto la dirección a la que apunta, no cambia tras la destrucción. Cuando creamos y destruimos punteros fuera del constructor y destructor, es una buena práctica inicializarlos a 0 cuando no se han creado para luego darles otro valor con el operador new. Así puedes detectar si un puntero apunta a una dirección válida.
Para inicializar un AnsiString a cadena nula es así:
Código:
AnsiString Cadena = "";
Si Tenemos un puntero AnsiString:
Código:
AnsiString *pCadena = new AnsiString;
*pCadena = "";
Para crear un array de AnsiString tienes la opción de usar un TStringList.
Código:
MyClase::MyClase(){
Tipo* Vector = 0;
CrearVector();
}
MyClase:: CrearVector()
{
if(Vector) delete Vector;
Vector = new Tipo;
}
MyClase::~MyClase(){
if(Vector) delete Vector;
}
Cita:
Empezado por NEG1414
No entiendo lo de
PssObj = &PO // ???? Porqué no pasas directamente un puntero a TObjeto
|
Código:
__fastcall TFormSecundario::TFormSecundario(TComponent* Owner,TObjeto* PO): TForm(Owner)
{
PssObj = PO;
.......
}
Saludos.