Ma non vedete il post che inviate? Ci capireste nulla?
Comunque, con un po' di fantasia ... sicuramente nel main queste chiamate non hanno senso dato che dati_negozio è solo un tipo di dati
inserimento (dati_negozio);
menu (dati_negozio);
Dovresti scrivere
dati_negozio prodotti[dim];
inserimento(prodotti);
menu(prodotti);
return 0;
e le relative funzioni dovrebbero iniziare con
int inserimento(struct dati_negozio prodotti[])
int menu(struct dati_negozio prodotti[])
ELIMINANDO le
dati_negozio prodotti[dim];
che hai messo al loro interno. Queste sarebbero variabili locali e non ha senso.
Inoltre la funzione menu è di tipo int quindi deve restituire qualcosa, in questo caso deve terminare con
return 0;
così come il main.