Newsgroup: it.comp.lang.c
Titolo: Problema con Array di Puntatori.

Buon giorno a tutti, ho un paio di problemini:
il primo: che sono uno zuccone e poco pratico col C !!!
il secondo: devo leggere un file e mettere le parole contenute nel
file in un'array, ecco l'implementazione:
#include <stdio.h>
#include <string.h>
int main (int argc, char*argv[])
 {
  char *Linea;
  char *Parola[255];
  int NumeroParola;
  char C;
  FILE *LetturaFile;
  int N,NC;
  for (N=0; N<=argc; N++)
   printf ("\nargv[%d]=%s\n",N,argv[N]);
  Linea=calloc (1024,sizeof(char));
  NumeroParola=0;
  LetturaFile=fopen(argv[1],"r");
  while ((C=getc(LetturaFile))!=EOF)
   {
    if (C==' ')
     {
      printf ("Trovata parola %s (%d)\n",Linea,NumeroParola);
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]=Linea;
      NumeroParola++;
      free (Linea);
      Linea=calloc (1024,sizeof(char));
      NC=0;
     }
    else
     {
      Linea[NC]=C;
      NC++;
     }
   }
  for (N=0; N<NumeroParola; N++)
   printf ("%d) %s\n",N,Parola[N]);
 }
Come output viene visualizzato il numero corretto delle parole nel
file ma sempre l'ultima parola letta nel file.
Il file termina con uno spazio.
Se, per prova, sostituisco la parte della lettura del file (quindi da
fopen alla chiusa del while) con il seguente codice:
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="ciao";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="a";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="tutti";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="come";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="state";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="spero";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="bene";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="perche";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="a";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="me";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="rode";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="visto";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="che";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="non";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="riesco";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="a";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="capire";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="perche";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="non";
      NumeroParola++;
      Parola[NumeroParola]=calloc (1024,sizeof(char));
      Parola[NumeroParola]="funziona";
      NumeroParola++;
tutto viene stampato regolarmente...
Dove sbaglio ?
Grazie

       Parola[NumeroParola]=Linea;
strcpy(Parola[NumeroParola],Linea);
E.


Grazie 10000...
anzie anche di più !!!!!!!!!!!!!!!!!!!!!!!