Originariamente inviato da shodan
Un modo elegante ci sarebbe, ma richiede un pò di lavoro in più.

http://www.parashift.com/c++-faq-lit...alization.html
[ot]Ah ecco, mi sembrava strano che Java avesse inventato qualcosa di nuovo![/ot]

Cell se non vuoi ricorrere alla serializzazione, basta aggiungere più banalmente un livello di astrazione alla funzione send() (e, specularmente, a recv())... tradotto, definisci tu una funzione my_send() con la quale inviare prima il campo n e poi i dati all'indirizzo del campo v, e poi richiami questa funzione in main() passandole la struct che vuoi inviare. L'effetto sarà quello di avere una funzione con la quale trasmettere dati strutturati sulla socket.

Ovviamente il problema è quello che avevi individuato tu fin dall'inizio: il puntatore v (o meglio, l'indirizzo che contiene) ha un senso soltanto all'interno dello spazio di indirizzamento del processo sulla macchina mittente, ma su quella ricevente sarà solo un valore senza senso (e anzi se lo dereferenzi non è escluso che tu possa avere segmentation faults).