Ver Mensaje Individual
  #4  
Antiguo 13-01-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por NEG1414 Ver Mensaje
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 Ver Mensaje
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.
Responder Con Cita