The segmentation fault is expected. In general, an address that has “meaning” in one process does not necessarily have meaning in another process. Even if it does have meaning the general concepts of process isolation in most modern operating systems preclude this kind of idea (naively passing a numerical pointer value from one process to another).
You may wish to investigate IPC methods. (IPC = inter-process communication)
CUDA provides an IPC subsystem for device memory, i.e. memory allocated with cudaMalloc, not cudaMallocManaged. Otherwise there are host-based IPC methods, which are not unique or specific to CUDA.