Ciao ragazzi,
siccome con i puntatori abbiamo creato un rapporto un po' controverso, ho bisogno di qualche informazione per quanto riguarda il riempimento di un array dinamico con dati provenienti da un file.
Supponiamo di ricevere i seguenti dati da file nel formato (x,y): (2,-7) (13,6)
Dobbiamo inserire le x nell'array che contiene tutti i punti delle ascisse (X) e le y nell'array che contiene tutti i punti delle ordinate (Y).
Vi mostro i passaggi fondamentali del mio codice per chiedervi dove passare essere l'errore:
FILE *File;
int *X, *Y, NumTot;
char s[DIM];
/* Apertura File (che salto perché non rilevante al momento) */
while (fscanf(File, "%s", s) == 1) //Conto quanti numeri ci sono per stabilire la grandezza degli array
NumTot++;
/* Dimensiono gli array */
X = (int *) calloc(NumTot+1, sizeof(int));
Y = (int *) calloc(NumTot+1, sizeof(int));
rewind(File);
i = 1;
while (fscanf(File, "%s", s) == 1)
{
sscanf(s, "(%d,%d)", &X[i], &Y[i]);
i++;
}
Il mio dubbio è principalmente nel fatto che, trattandosi di puntatori, mi segna errore assegnare direttamente il valore a X
e mi obbliga ad assegnarlo a &X. Ma con & non si intende l'indirizzo della cella di memoria contenente il dato, e non il dato in se?
Inoltre, quando utilizzerò il dato successivamente, dovrò comunque usare la sintassi &X?
Grazie in anticipo per l'aiuto!