【发布时间】:2013-06-04 10:31:27
【问题描述】:
我在 txt 文件中有内存位置地址。我想从文件中读取地址并使用存储在该地址的值。这是我所做的:
char line[10];
FILE *f;
f=fopen("p:\\address.txt", "r");
fgets(line,10,f);
该文件包含地址 0x12ff30。我已将其存储在 char 数组行中。该地址包含一个双精度值(从 0x12ff30 开始的 8 个字节)。现在如何创建和使用指针来获取存储在该地址的值?
谢谢。
【问题讨论】:
-
你确定这是你想做的吗?一般来说,您无法访问任意内存位置并获得有意义的行为。
-
@OliCharlesworth 嘿!实际上,我正在运行另一个将数据实时写入此内存位置的软件。所以我很确定我想访问这个位置并获得那个值:)
-
你真的不想这样做。如果您的程序共享内存空间,那么有更好的方法来获取指针,比如全局变量?至少您需要查看 IPC en.wikipedia.org/wiki/Inter-process_communication,例如共享内存。请不要将文件系统用作进程间通信的方法!...
-
@user2438252:嗯。在大多数系统上,由于virtual memory,两个独立的程序将具有完全不同的地址空间。所以一个程序中的地址在另一个程序中没有意义。
-
@OliCharlesworth 完全正确。大约 3 周前,我记得有人想将指针重定向到 C++ 中的 iostream 和从 iostream 中取出。我们进行了同样的对话。指针一旦离开程序就毫无意义!
标签: c pointers memory-address