<分区>
如果我有一个指向 int 的指针,它的值为 0x0012FF7C
我如何将这个值存储在一个字符串中,然后进行相反的操作(我的意思是将存储在字符串中的值转换为 >int*
)
我需要这种方式,因为我需要在 PVM 中的两个进程之间发送内存位置,所以我需要将指针的值作为字符串发送,并在第二个进程中接收该字符串并将其值存储在指针中
<分区>
如果我有一个指向 int 的指针,它的值为 0x0012FF7C
我如何将这个值存储在一个字符串中,然后进行相反的操作(我的意思是将存储在字符串中的值转换为 >int*
)
我需要这种方式,因为我需要在 PVM 中的两个进程之间发送内存位置,所以我需要将指针的值作为字符串发送,并在第二个进程中接收该字符串并将其值存储在指针中
最佳答案
你的计划听起来好像行不通,因为一个进程中的有效内存地址可能是另一个进程中的无效内存地址......不过,你可以这样做:
sprintf(str,"%p",ptr)
sscanf(str,"%p",&ptr)
char str[8+1]
char str[16+1]
话虽如此,您可能需要发送内存地址的内容,或者如果对于此目的而言太长,则在一个进程中将它们写入一个文件并在另一个进程中从该文件中读取它们其他进程。
关于c++ - 将指针值转换为字符串并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23682052/