I 2 warning dovrebbero essere degli error perchè come carica(&magazzino) anche ordine(& magazzino) devono diventare carica(magazzino) e ordine(magazzino); magazzino è un array come ti ho detto e gli array in c sono puntatori; quindi magazzino è struct prodotto *; prova così ci sono buone probabilità che funzioni!