在python中,你可以使用id函数学习变量的内存位置,所以:
X = "Hello world!"
print(id(X)) # Output is equal to 139806692112112 (0x7F27483876F0)
我试图用C中的指针访问变量(当然其他程序还活着):
#include <stdio.h>
int main(void){
char *x = (char *) 0x7F27483876F0;
printf("%s\n", x);
return 0;
}
我编译代码,没有错误或警告,但是当我尝试运行程序操作系统给出分段错误时。我怎么能解决这个问题?
或者可能吗?
答案 0 :(得分:4)
这样做的事情现在越来越不可能了。使用地址空间布局随机化等功能,您无法确定给定程序的位置,更不用说变量会在实际内存中加载。
最好的办法是使用某种类型的消息传递。不知道为什么所有的问题都存在问题,但这似乎是一个合理的问题,即使这些天在技术上不可行。