Così funziona.
codice:
int nuovo( char *fname, STRUTTURA **St)
{
/* controlli vari sul nome del file */
FILE *fp = fopen(fname, "r");
if (!fp)
return ERR; // ritorna un codice di errore
/* non ci sono errori, inizializza */
(*St) = malloc(sizeof(STRUTTURA));
(*St)->file = fp;
(*St)->stato = APERTO; // all'inizio APERTO di default
(*St)->x = 1; // valore iniziale di default
return 0;
}
int main()
{
STRUTTURA *A = NULL;
int i;
if( nuovo( "testo.txt", &A ) != ERR )
{
fscanf( A->file, "%d", &i);
printf("Intero (test) = %d\n", i );
fclose(A->file);
}