Ma si non mi sembra così difficile, si può andare con una serializzazione molto ingenua, senza andare a tirare fuori grandi robe.

codice:
struct Data
{
	int n;
	int* v;
};
Quindi, dal mittente invii un intero. Il ricevente legge un intero, alloca una struttura Data e riempie il campo n con l'intero che ha letto, lasciando il puntatore indefinito o al massimo a NULL.

Il mittente invia un altro intero che è il numero di interi nell'array. Il ricevente alloca un array di x elementi e assegna l'indirizzo dell'array al puntatore v della struttura.

Il mittente invia gli x elementi dell'array. Il ricevente li legge e li inserisce in ordine nell'array allocato.

Et voilà