In ogni caso, al di là delle varie funzionalità, quello che chiedo è semplice in linea teorica ma non capisco bene come tradurlo in codice.

Supponiamo che io abbia:


codice:
srx1.buf_rx="Ciao□"; //con □ = INVIO
srx1.conta_rx=5;

le mie due variabili sono:

codice:
char **punta;
int *lunghezza;
La funzione dovrebbe essere chiamata così:

codice:
Get_Ricevistringa(punta,lunghezza)
e quello che deve fare è:

codice:
srx1.buf_rx
è un vettore di caratteri quindi
codice:
srx1.buf_rx[]
o equivalentemente
codice:
&srx1.buf_rx[0]
sono l'indirizzo di memoria del primo elemento del vettore di caratteri (ossia della stringa), cioè sono il puntatore che punta proprio al primo elemento della stringa. Quello che faccio io è esportare questo puntatore ed usarlo in altre funzioni.

Per qualche ragione però non è quello che la consegna mi richiede. La consegna vuole che io esporti punta che è un puntatore a puntatore. Quello che devo fare è associare a punta l'indirizzo del puntatore al puntatore alla stringa (ossia punta deve contenere l'ndirizzo a cui si trova il puntatore il cui contenuto è &srx1.buf_rx[0])

Per lunghezza invece di fare
codice:
lunghezza=srx1.conta_rx
credo che forse basti fare
codice:
*lunghezza=&srx1.conta_rx
in modo da esportare il puntatore all'intero conta_rx della struttura srx1 ma anche qui ho alcuni dubbi se sto utilizzando correttamente l'operatore di deferenziazione *.