Muy sencillo no podes enviar punteros ... hace una copia de los datos y envialos. En otra maquina (incluso en otro proceso) el espacio de memoria es totalmente independiente asi que el puntero es invalido o peor, apunta a otra cosa ...
Exacto.
Para gestionar este tipo de cosas puedes emplear mecanismos estándares de serialización ya existentes ( ASN1, JSON, Protocol Buffers, XDR, ... ). Si bien te exigen algo más de trabajo a la hora de enviar y recibir datos, lo cierto es que te simplifican enormemente la tarea de gestionar lo que se envía... además de que proporcionan mecanismos para permitir la comunicación entre máquinas con diferentes arquitecturas ( 32 bits - 64 bits, big endian - little endian, ... )