È da un po' che sto sbattendo la testa su questo esercizio ma non riesco proprio a venirne a capo:
-creare una funzione di nome duplicaStruct che dato in ingresso una struct INFO ne restituisca il suo duplicato allocato in maniera dinamica.
Ho cercato su google e non sono riuscito a trovare una soluzione, ho provato con memcpy e funziona, ma ovviamente non è quello che mi chiede la traccia
funzione duplicaStruct:
utilizzo nel main:codice:struct INFO *duplicaStruct(struct INFO *s, int i){ struct INFO *s2 = (struct INFO *)malloc(sizeof(struct INFO)); s2[i].codice = s[i].codice; strcpy(s2[i].nome, s[i].nome); s2[i].npezzi = s[i].npezzi; s2[i].prezzo = s[i].prezzo; return s2; }
Output:codice:int main(){ struct INFO *s[MAXLEN]; struct INFO *s2[MAXLEN]; ... for(i=0;i<n;i++){ //n è il numero di strutture create per s s2[i]=duplicaStruct(*s, i); } printf("-----STRUCT 1-----\n"); stampaStruct(s, n); printf("-----STRUCT 2-----\n"); stampaStruct(s2, n); }
codice:// Inserisco i valori per la struct 1 Codice: 1 Nome: Prodotto1 Prezzo: 5 Numero pezzi: 30 Codice: 2 Nome: Prodotto2 Prezzo: 2 Numero pezzi: 30 -----STRUCT 1----- Codice: 1 Nome: Prodotto1 Prezzo: 5.00 Numero pezzi: 30 Codice: 2 Nome: Prodotto2 Prezzo: 2.00 Numero pezzi: 30 -----STRUCT 2----- Codice: 1 Nome: Prodotto1 Prezzo: 5.00 Numero pezzi: 30 Codice: 0 Nome: Prezzo: 0.00 Numero pezzi: 0


Rispondi quotando