enuncio il mio problema:
ho una stringa puntata da un puntatore, poniamo char *string.

il fatto è che il mio programma è composto, oltre che dalla funzione main, da altre funzioni, a loro volta contenenti altre sottofunzioni.

visto che char *string verrebbe dichiarata nel main (e ho bisogno che L'INDIRIZZO DELLA STRINGA venga passato PER RIFERIMENTO), e visto che tale stringa mi serve anche nelle altre funzioni , mi trovo davanti ad un bivio...

dichiaro char *string nel main, e passo la striga come argomento alle varie funzioni? in questo caso però avrei funzioni che gestirei + difficilmente, visto che mi troverei ad avere un sacco di dereferenze (arriverei per esempio ad avere funzioni dichiarate in questo modo

codice:
void func (char ****string)
a causa dei continui passaggi della stringa da funzione a funzione...

oppure risolvo il problema dichiarando char *string come variabile globale?
epperò in questo modo contravvengo al principio del minimo privilegio?

avevo pensato anche a far ritornare alle varie funzioni un puntatore a stringa (char *). ma in alcune di quelle funzioni mi occore un valore di ritorno di tipo int...