Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    8

    Init struct (function) C

    Scusate , chiedo aiuto perchè proprio non capisco come fare.
    Ho bisogno di creare una funzione che mi inizializzi un array di struct.
    Solo che se faccio

    codice:
    void init(STRUCT array[]){
    array[0]={"Ciccio","Test",10,11,12,'a'};
    }
    }
    da un sacco di errori.

    La struct è composta da cognome , nome , data di nascita , voto (stile inglese A,B,C).
    Ho provato ad inizializzarlo in ogni modo ma proprio non funziona.
    Halp!
    Ultima modifica di MItaly; 06-02-2014 a 14:12

  2. #2
    In C puoi usare quella sintassi solo se inizializzi una struct, non se la assegni. Tu devi inizializzare tutti gli elementi dell'array allo stesso valore?

    (tra parentesi, evita volgarità come "stringhe di prova", a molti danno fastidio)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    8
    ahah mi scuso , è che sto rosicando assai .
    Comunque devo inizializzare per esempio i primi 3 elementi con dei dati test (non uguali E.g mario rossi , gianfranco muchacha, paola bianco)
    Come dovrei fare?

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    strcpy(array[i].cognome, cognome);
    strcpy(array[i].nome, nome);
    array[i].dd = dd;
    array[i].mm = mm;
    array[i].aa = aa;
    array[i].voto = voto;
    Meglio
    codice:
    initEl(array+i, cognome, nome, dd, mm, aa, voto);
    void initEl(struct (??)*e, char *cognome, char *nome, int dd, int mm, int aa, char voto) {
      strcpy(e->cognome, cognome);
      strcpy(e->nome, nome);
      e->dd = dd;
      e->mm = mm;
      e->aa = aa;
      e->voto = voto;
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.