Passaggio strutture a funzioni

di il
2 risposte

Passaggio strutture a funzioni

Buonasera a tutti, vi ringrazio in anticipo per il tempo che mi dedicherete. Sto facendo un programmino per la gestione di una rubrica e mi dà noia in compilazione, dice "request for member 'nome' in something not a structure or union", ecco qui il codice:

#include <stdio.h>
#include <stdlib.h>
#define N 20
#define C 5
typedef struct{
    char nome[N];
    char cognome[N];
    char numero[N];
}contatto;

void menu();
void inserimento(contatto *[]);
void visualizza(contatto []);
void ricerca(contatto [], char [], int);
void modifica(contatto *[], char []);
void elimina(contatto [], char [], int);

int main()
{
    typedef struct{
            char nome[N];
            char cognome[N];
            char numero[N];
    }contatto;

    contatto rubrica[C];
    int scelta;
    char trova[N];

    do{
        system("cls");
        menu();
        printf("Inserisci la tua scelta: ");
        scanf("%d", &scelta);

        switch(scelta){
            case 1:
                system("cls");
                inserimento(rubrica);
                break;
            case 2:
                system("cls");
                visualizza(rubrica);
                break;
            case 3:
                system("cls");
                printf("Inserisci in base a che elemento della rubrica vuoi effettuare la ricerca: \n");
                printf("1. Nome\n");
                printf("2. Cognome\n");
                printf("3. Numero\n");
                scanf("%d", &scelta);
                printf("Inserisci l'elemento di ricerca: ");
                scanf("%s", trova);
                ricerca(rubrica, trova, scelta);
                break;
            case 4:
                system("cls");
                modifica(rubrica, trova);
                break;
            case 5:
                system("cls");
                do{
                    printf("Inserisci in base a che elemento della rubrica vuoi effettuare l'eliminazione del contatto: \n");
                    printf("1. Nome\n");
                    printf("2. Cognome\n");
                    printf("3. Numero\n");
                    scanf("%d", &scelta);
                    if(scelta<1 || scelta>3)
                        printf("Scelta inesistente. Ripetere l'inserimento.\n\n");
                }while(scelta<1 || scelta>3);
                printf("Inserisci l'elemento di ricerca: ");
                scanf("%s", trova);
                elimina(rubrica, trova, scelta);
                break;
            case 0: return 0;
                break;
            default:
                printf("Scelta non valida. \n");
                break;
        }

    }while(scelta!=0);

    return 0;
}
void menu(){
    printf("________________________________\n");
    printf("Gestione rubrica 1.0 beta\n\n");
    printf("Menu: \n"
           "1. Inserimento elementi in rubrica\n"
           "2. Visualizzare elementi in rubrica\n"
           "3. Ricercare elementi in rubrica\n"
           "4. Modificare un elemento in rubrica\n"
           "5. Cancella un elemento dalla rubrica\n"
           "0. Esci\n\n");
}
void inserimento(contatto *elemento[]) {
    int i;

    for(i=0;i<C;i++){
        printf("\nInserisci l'elemento n. %d in rubrica: \n", i+1);
        printf("\t nome: ");
        scanf("%20s", *elemento[i].nome);
        printf("\t cognome: ");
        scanf("%20s", elemento[i].cognome);
        printf("\t numero: ");
        scanf("%10s", elemento[i].numero);
    }
}
void visualizza(contatto elemento[]){
    int i;

    for(i=0;i<C;i++){
        printf("\nElemento n. %d in rubrica: \n", i+1);
        printf("\t nome: %s\n", elemento[i].nome);
        printf("\t cognome: %s\n", elemento[i].cognome);
        printf("\t numero: %s\n", elemento[i].numero);
    }
}
void modifica(contatto *persona[], char el[]){}
void ricerca(contatto persona[], char el[], int sc){}
void elimina(contatto persona[], char el[], int sc){}
Ringrazio nuovamente

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte