Dichiari un array di puntatori a Client che passi alla funzione Menu (che mascherata, riceve un Client* come tipo di dato e un Client** come parametro).codice:Client* clients[100];
Alla funzione InsertClient passi una locazione di quell'array per puntatore. Quella locazione però contiene un Client* quindi per riceverlo la InsertClient deve ricevere un Client* come tipo di dato e un Client** come parametro.
In parole povere Client* non vederlo come puntatore ma come tipo di dato vero e proprio.
Nella mia funzione, invece di passare una locazione dell'array e metterci un nuovo Client*, lo alloco e lo restituisco subito mettendolo nella locazione i dell'array. Tutto li.