Codice PHP:
#include<stdio.h>
struct tipo{
       
int num;
       
char nome[30];
       
char cognome[30];
       
int eta;
       };
       
       
main()
       {
             
typedef struct tipo record;
             
record rubrica;
             
             
FILE *punta;
             
             if((
punta=fopen("rubrica.dat""w"))==NULL)
                
printf("Il file non può essere creato.\n");
             else
             {
                 
printf("Inserisci la posizione in cui intendi scrivere\n"
                        "da 1 a 100 oppure 0 per uscire\n\n"
);
                 
scanf("%d", &rubrica.num);
                 
                 while(
rubrica.num !=0)
                    {
                       
printf("Inserisci Nome, Cognome, età: ");
                       
scanf("%s%s%d", &rubrica.nome,&rubrica.cognome,&rubrica.eta);
                    
                       
fwrite(&rubricasizeof(record),1,punta);
                    
                       
printf("Inserisci la posizione in cui intendi scrivere\n"
                        "da 1 a 100 oppure 0 per uscire\n\n"
);
                       
scanf("%d", &rubrica.num);
                    }
                    
fclose(punta);
             }

Domanda 1 - Perchè nello scanf (interno al while) si usa & per assegnare il valore di input aglli array contenuti nella struct? non sono sempre puntatori al loro primo membro?

Domanda 2 - Come faccio a prendere in input anche lo spazio? Mi spiego, l'utente immette un nome del tipo Paolo Antonio, il programma così com'è assegna Paolo a .nome e Antonio a .Cognome.

Grazie anticipate