Wenn du dir, um Arbeit zu sparen, wirklich die Daten 1:1 austauschen willst wie sie grade im Speicher liegen musst du allerdings auch sicherstellen dass beide Programme mit exakt den gleichen Compilern und Compiler-Einstellungen (Record-Padding, ...) erstellt wurden. Ist dir das klar?
Typen mit automatischer Referenzzählung (Strings, dynamische Arrays, ...) kannst du über so eine Methode sowieso nicht versenden, da bekämen sich beide Programme nur in die Haare. Dann fängst du, wenn du z.B. deine Dinge wie Adresse liefern willst, sowieso wieder an, Strings erst in Char-Arrays mit fester Größe zu stopfen um sie dann zu übertragen.
Und ich glaube mit Sockets über
TCP (oder vlt. sogar HTTP/REST) ist man da sogar schneller und unkomplizierter fertig.
Ich sehe Dinge wie Memory Mapped Files eher bei Dingen wie großen Bitmaps und ähnlichem, aber die Entscheidung liegt natürlich bei dir.