c++ - 将指针值转换为字符串并再次返回

标签 c++ pointers

<分区>

如果我有一个指向 int 的指针,它的值为 0x0012FF7C 我如何将这个值存储在一个字符串中,然后进行相反的操作(我的意思是将存储在字符串中的值转换为 >int*)

我需要这种方式,因为我需要在 PVM 中的两个进程之间发送内存位置,所以我需要将指针的值作为字符串发送,并在第二个进程中接收该字符串并将其值存储在指针中

最佳答案

你的计划听起来好像行不通,因为一个进程中的有效内存地址可能是另一个进程中的无效内存地址......不过,你可以这样做:

  • 在第一个过程中,调用sprintf(str,"%p",ptr)
  • 在第二个过程中,调用sscanf(str,"%p",&ptr)
  • 在 32 位系统上,您需要声明 char str[8+1]
  • 在 64 位系统上,您需要声明 char str[16+1]

话虽如此,您可能需要发送内存地址的内容,或者如果对于此目的而言太长,则在一个进程中将它们写入一个文件并在另一个进程中从该文件中读取它们其他进程。

关于c++ - 将指针值转换为字符串并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23682052/

相关文章:

pointers - `*const T` 和 *mut T` 原始指针有什么区别?

c++ - 在 C++ 中合并两个 PDF 文件

c++ - 如何在没有 std::move 的情况下 move 临时对象

pointers - 理解 Go 指针

c - 错误指针在运行时的行为

delphi - 如何解决Delphi错误: Incompatible types: 'PWideChar' and 'Pointer'

c++ - 无法从 QML 访问 C++ QObject 子类方法

c++ - 如何在 opencv c++ 中从实时视频提要的帧上画一条线

c++ - OpenGL 类型 GLint、Glbyte... 到 C++ int32_t、int8_t... 映射

c - 数组名称在 C 中衰减为指针 - 编译错误