我有两个应用程序。
首次申请:
int a = 42;
int *P = &a;
第二次申请:
int b = *P;
有可能吗?否则,是否可以通过并行执行的两个应用程序(或多个)访问相同的内存?
答案 0 :(得分:2)
对于两个独立的应用程序,即使是共享内存位也不仅仅涉及通过相同地址进行引用,当然在典型的桌面系统上。每个应用程序都会看到一个虚拟地址空间 - 而不是机器的物理地址空间。其他应用程序的内存通常甚至不可见 - 更不用说映射到同一地址了。
有(平台特定的)API可以让您访问另一个应用程序内存,主要针对调试器和类似工具,但也可以游戏“培训师”作弊使用 - 但这不是在应用程序之间进行通信的好方法。
在Windows上...
http://msdn.microsoft.com/en-us/library/ms680553%28VS.85%29.aspx