Codice PHP:
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
/* !
 *  La struttura Telefono è utilizzata per memorizzare il Numero Telefonico 
 *  del Contatto ed il tipo ( "Etichetta" ) di numero 
 */
typedef struct unsigned int  ID/*!< Variabile intera senza segno di 
                                    * indentificazione univoca del numero telefonico */
                                    
                 
char  NumTel[50]; /*!< Stringa contenente il numero telefonico*/
                 
                 
char  Etichetta [50]; /*!< Stringa contenente la tipologia di
                                        * numero telefonico: "Casa" , "Ufficio" , "Fax" , etc...*/
               
Telefono


/* 
   La struttura Persona utilizzata per allocare un nuovo Contatto  
*/               
typedef struct unsigned int  ID
                 
char  Cognome [50]; 
                 
char  Nome [50];
                 
Telefono Tel;
                 
char Indirizzo[100];
               } 
Persona
               
void InserisciPersona **New , int *n);
void stampaPersona *List , int n );

int main(){
   
Persona *Contatti;
   
int startchoice;
   
start 0;
   
Contatti NULL;

printf("Premi 1 per inserire\n"
       "Premi 2 per terminare\n?"
);
scanf("%d", &choice);

while(
choice!=2){
   
Inserisci(&Contatti, &start );
   
stampa(Contattistart );
   
printf("?");
   
scanf("%d",&choice);
}
   
free(Contatti);
   
system("PAUSE");
return 
0;
}

void InserisciPersona **New , int *)
int idim;
  
Persona *NewP;
  
  
dim=*n;
  
  if (
dim == 0){
    
dim++;
    
NewP=(Persona*)malloc(sizeof(Persona));
  }
  else{
    
dim++;
    
NewP = (Persona*)realloc(*New, dim);
  }

  
system("CLS"); 
  
  
/* Inserimento dati... */
  
printf "\nInserimento Persona\n" );
  
  
NewP[dim].ID=dim;  
  
/* ...stampo l'ID */
  
printf("\nID: %d\n" NewP[dim].ID); 
  
/* Inserimento Cognome del Contatto nella struttura di appoggio */
  
printf("Cognome: ");
  
scanf("%s" NewP[dim].Cognome );
  
/* Inserimento Nome del Contatto nella struttura di appoggio */
  
printf("Nome: ");
  
scanf "%s" NewP[dim].Nome );
  
/* Inserimento Numero Telefonico del Contatto nella struttura di appoggio */
  
printf("Numero: ");
  
scanf("%s" NewP[dim].Tel.NumTel );
  
/* Inserimento Tipo di Numero Telefonico del Contatto nella struttura di appoggio */
  
printf("Tipo Numero: ");
  
scanf("%s" NewP[dim].Tel.Etichetta );

  
/* Inserimento Indirizzo del Contatto nella struttura di appoggio */
  
getchar();
  
printf("Indirizzo: ");
  
fgetsNewP[dim].Indirizzo 100 stdin );
  
  
   
/* Restutuisco al main i valori aggiornati */
   
*dim;
   *New=
NewP;

  
/* Stampo un messaggio di di avviso e termino la procedura */ 
  
system("CLS");
  
printf "\nContatto inserito\n" ); 
  
system("PAUSE");
  
system("CLS"); 

   
   return;
   
}

void stampa Persona *List , int n )
int i,   /* Variabile di iterazione per i cicli */
      
len/* Lunghezza effettiva del file "Contatti.txt" */

  
system("CLS"); 
   
  
printf("\n");
  
printf("\t\t +-----------------------------+\n");
  
printf("\t\t +       Stampa Contatti       + \n");
  
printf("\t\t +-----------------------------+\n\n");
  
  
printf(" --------------------------------------------------------------------------\n");
  
printf("ID\tCognome\tNome\tTelefono\tTipo\tIndirizzo\n" );
  
printf(" --------------------------------------------------------------------------\n");
 
  
/* Se non c'è nessun contatto, ossia la lunghezza del file è "zero" */
  
if ( == )
  {
     
printf("     -> Nessun Contatto Presente <-\n");
  }
  
/* Altrimenti stampa la lista di contatti */
  
else
  {
    for(
i=1i<=ni++)
    {
      
printf("%d\t%s\t%s\t%s\t%s\t%s\n" , List[i].ID , List[i].Cognome , List[i].Nome 
                                     List[
i].Tel.NumTel , List[i].Tel.Etichetta 
                                     List[
i].Indirizzo);
    } 
  } 
  
printf("\n -----------------------------------------------------------------------n\n");

  
printf("\n\n");
  
  
system("PAUSE");
  
system("CLS");  
  return; 


Mi sono complicato un pò la vita...ma non funziona!
Mi fa inserire il primo contatto fino all'indirizzo, appena inserisco l'indirizzo, si impalla tutto!
HELP MEEEEEEEEEEE!!!