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 è:
è un vettore di caratteri quindi
o equivalentemente
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 *.