È 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:
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;
}
utilizzo nel main:
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);
}
Output:
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