@Arthur Tacca thank you for your comment but I don't see how that could solve my problem of sharing locally reserved data on the heap of a process using functions like: malloc, calloc, ... Suppose that the instruction mySharedStruct.pData = (void*) calloc (1, 10); returns the address 0x000e7c80 which symbolizes a void * (or more complicated a : void **) in P1 Heap. How to make the address 0x000e7c80 usable by P2 ?! because this address is not part of its heap and any access attempt will generate a memory access violation