在C中访问另一个程序的变量

A. *_*Ite 6 c c++ python

在python中,您可以使用id函数学习变量的内存位置,因此:

X = "Hello world!"
print(id(X)) # Output is equal to 139806692112112 (0x7F27483876F0)
Run Code Online (Sandbox Code Playgroud)

我试图用C中的指针访问变量(当然其他程序仍然存在):

#include <stdio.h>

int main(void){
    char *x = (char *) 0x7F27483876F0;
    printf("%s\n", x);

    return 0;   
}
Run Code Online (Sandbox Code Playgroud)

我编译代码,没有错误或警告,但当我尝试运行程序操作系统给出分段错误.我怎么能解决这个问题?

或者有可能吗?

小智 5

如今,做这样的事情越来越不可能了。使用地址空间布局随机化等功能,您无法真正分辨出给定程序的位置,更不用说变量将在实际内存中加载。

最好的选择是使用某种类型的消息传递。不知道为什么对您的问题全部否决,但这似乎是一个合理的问题,即使这些天在技术上不可行。