Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C]Rubrica Telefonica - struct

    Ho una struct di questo tipo:
    codice:
    typedef char stringa[25];
    typedef struct Contatto{
        stringa cognome;
        stringa nome;
        char data_n[11];
        stringa indirizzo;
        stringa num;
        stringa cell;
        stringa email;
        stringa descrizione;
    }Contatto;
    Sto realizzando una rubrica telefonica con le struct. Ho fatto una funzione che si chiama Inserisci_nuovo che si occupa di inserire un nuovo contatto nella rubrica.

    Il main ha l'elenco dei contatti dichiarato come segue:
    #define dmax 100
    ...
    ...
    Contatto Elenco[dmax];
    Richiamo la funzione dal main nel seguente modo:
    Inserisci_nuovo(&elenco,&dim);

    gli errori me li da nella funzione Inserisci_nuovo ed in altre perchè non ho capito come fare, avendo passato l'elenco per indirizzo, ad accere ad ogni campo della struct di posto i.

    codice:
    void Inserisci_nuovo(Contatto *persona,int *dim){
        fflush(stdin);
        printf("\t\t\t Inserimento nuovo contatto\n");
        printf("Inserisci il nome: ");
        gets(persona[dim]->nome);
        toupper(persona[dim]->nome);
        printf("Inserisci il cognome: ");
        gets(persona[dim]->cognome);
        toupper(persona[dim]->cognome);
        printf("Inserisci la data di nascita in formato( gg/mm/aaaa): ");
        gets(persona[dim]->data_n);
        printf("Inserisci l'indirizzo: ");
        gets(persona[dim]->indirizzo);
        printf("Inserisci il numero di telefono: ");
        gets(persona[dim]->num);
        printf("Inserisci il numero di cellulare: ");
        gets(persona[dim]->cell);
        printf("Inserisci l'email: ");
        gets(persona[dim]->email);
        printf("Inserisci una descrizione: ");
        gets(persona[dim]->descrizione);
        (*(dim))++;
        SeqSel(persona,(*(dim)));
        getch();
    }

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    se dim è un puntatore non lo puoi usare come indice di un array

    togli il fatto che sia un puntatore

  3. #3
    Anche se per esempio faccio gets(persona[*dim]->nome) non funziona lo stesso, poi il fatto di usare dim come indice non credo che sia sbagliato

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    è sbagliato perchè è un puntatore (cioè un intero di valore a te sconosciuto tipo 24856)

    per gli array si unaso gli int non i puntatore agli int

    poi che errori da in compilazione? o al limite in esecuzione?

  5. #5
    la dim nel main viene inizializzata a 0, poi passata per indirizzo, quindi il valore della dim lo conosco ed aumenta con l'aumentare dei contatti. L'errore in compilazione è invalid type argument '->'

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    perchè contatto è un arrei di persone giusto? quindi usanto l'operatore [] hai una struttura che si usa con il '.' e non con il '->'

    mi sembra che tu abbia qualche dubbio di troppo su puntatori, indirizzi e riferimenti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.