Non è lo stesso programma di prima ...

Originariamente inviato da keykode20
codice:
#include <stdio.h>

struct elemento{
       char nome[50];
       int n;
       struct elemento *next;
       };
 
       
struct elemento *crealista(){
       struct elemento *p;
       char c;
       char k[50];
       printf("vuoi aggiungere un elemento? permi 's' per si 'n' per no e stampare\n");
       scanf("%c",&c);
       if(c=='n'){
       p=NULL;
       }
       else if(c=='s'){
            while(c=='s'){
            p=(struct elemento*)malloc(sizeof(struct elemento));
            printf("inserisci nome : ");
            scanf("%s",k);
            strcpy(p->nome,k);
            printf("inserisci numero : ");
            scanf("%d",&p->n);
            scanf("%c",&c);
            if(c=='n')
            p->next=NULL;
            else
            p=crealista();
            }
            }
            return (p);
            }
            
void stampa(struct elemento *p){
     printf( " Lista --> ");
     while(p!= NULL){
               printf("%s", p->nome);
               printf("-->");
               printf("%d",p->n);
               printf("-->");
               p=p->next;
               }
               printf(" fine \n ");
               }

void *creafile(struct elemento *p){
     FILE *f;
     f=fopen("rubrica2.txt","w");
     if(f==NULL)
     printf("ERRORE");
     else
     while(p!=NULL){
     fprintf(f,"%s",p->nome);
     fprintf(f,"%d",p->n);
     p=p->next;
     }
     fclose(f);
     }
     
  
     
main(){
       struct elemento *e;
       e=crealista();
       stampa(e);
       creafile(e);
       system("PAUSE");
       }
e il void * deve essere semplicemente void