Клиент и сервер имеют разные адресные пространства, даже если они находятся на одной машине.Следовательно, вы не можете отправить указатель через сокет и ожидать, что он сделает что-то значимое на другом конце.
Один из правильных способов сделать это - поместить структуру в раздел общей памяти и отправить смещение в области общей памяти.Очевидно, что это также будет работать только в том случае, если клиент и сервер находятся на одной физической машине.
РЕДАКТИРОВАТЬ:
И, даже если это будет работать для чтения данных, вы должны (очевидно) остерегаться вызова функций, таких как closedir
или иным образом освобождая память от другого процесса.Такие вещи почти наверняка означают ужасную неудачу (в смысле: теперь ты умрешь).
В «нормальном» случае, когда клиент и сервер находятся на разных машинах, вы никак не можетеделать такие вещи вообще.Конечно, вы можете отправлять строковые данные или сериализованные данные просто отлично, но не указатели или что-то подобное.