Originariamente inviato da oregon
Un attimo, prima di continuare ...

se scrivi

TABELLA *Persona;

avrai un puntatore ad una struttura di tipo TABELLA e non ad un array di puntatori di tipo TABELLA ...

Se ragioniamo con il codice che stai scrivendo e' meglio ...
oregon il programma è lo stesso per cui mi hai aiutato l'altra volta
di seguito posto il codice



struct { char Parola[40]; int Occorrenza;} ELENCO;
main()
{
int NumElem;
char NomeFile[LENMAX];
ELENCO *Index;
NumElem=CreaStruttura(NomeFile,&Index);


int CreaStruttura(char *NomeFile, ELENCO **Indice)
{
int NumElem, DimText;
NumElem=-1;
DimText=Alloca (&Indice,DimText);
while (! feof(Pf))
{
if (NumElem >= DimText-1)
DimText= Rialloca(Indice, NumElem, DimText);
........
........
return NumElem;
}


int Alloca (ELENCO ** Indice,int DimText)
{
int i;
DimText=BLOCCO;
Indice = (ELENCO **) malloc (BLOCCO * sizeof (ELENCO *)); /*Questa forma è detta coecizione*/
if ( Indice == NULL) /*Controllo che l'operazione di allocazione sia andata a buon fine, altrimenti esco con un warning */
printf ("Error: Out of Memory \n"), system ("pause"), exit(1);
for(i=0; i<BLOCCO;i++)
Indice[i]=(ELENCO*)malloc(sizeof(ELENCO));
return DimText;
}


int Rialloca(ELENCO **Indice, int NumElem, int DimText)
{
ELENCO **Q;
int i;
DimText+=BLOCCO;
Q=realloc (Indice, DimText);
if (Q)
{
Indice=Q;
for (i = DimText-BLOCCO; i < DimText ;i++)
Indice[i]=(ELENCO*) malloc (sizeof(ELENCO));
printf("Sono stati allocati %d byte \n", DimText);
}
else
printf("Error: Out of Memory \n"), system ("pause"), exit(1);
return DimText;
}