Siguiendo vuestro consejo, y despues de dar un vistazo a la guia de estilo, vuelvo a escribir el mensaje.
Lo dicho, este es el codigo:
Código:
#ifndef _TALBUM_
#define _TALBUM_
typedef struct{
AnsiString Album;
AnsiString Grupo;
AnsiString Estilo;
AnsiString Cover;
int Formato;
}tAlbum;
tAlbum *Catalogo;
#endif
Código:
void __fastcall TfrmCMusica::FormActivate(TObject *Sender)
{
int i=0,j;
AnsiString disco;
if(!access("album.txt",0)){
memoAux->Lines->LoadFromFile("album.txt");
i = memoAux->Lines->Count;
}
//Reservamos memoria para el vector
Catalogo=(tAlbum*)malloc(sizeof(tAlbum)*i);
//Inicializamos el vector con los discos que ya tenemos guardados
for(j=0;j<i;j++){
disco = memoAux->Lines->operator [](j);
Catalogo[j].Album = disco.SubString(1,disco.Pos(":")-1);
disco.Delete(1,disco.Pos(":"));
Catalogo[j].Grupo = disco.SubString(1,disco.Pos(":")-1);/*aqui falla*/
disco.Delete(1,disco.Pos(":"));
Catalogo[j].Estilo = disco.SubString(1,disco.Pos(":")-1);
disco.Delete(1,disco.Pos(":"));
Catalogo[j].Formato= disco.ToInt();
}
}
Pues eso que falla al ejecutar en el ligar indicado y no se porque sera, porque (segun creo) no hay que reservar memoria para un AnsiString, pero lo que ya no entiendo es porque al declarar Catalogo como un array estatico si funciona.
A ver si ahora me podeis ayudar, que me perdonen los que se hayan molestado.