我想提取 ctypes.c_char_p
实例指向的整数地址。
例如,在
>>> import ctypes
>>> s = ctypes.c_char_p("hello")
>>> s
c_char_p(4333430692)
我想获取的值是 4333430692 — 字符串 hello\0
在内存中的地址:
(lldb) x 4333430692
0x1024ae7a4: 68 65 6c 6c 6f 00 5f 70 00 00 00 00 05 00 00 00 hello._p........
我已经阅读了 ctypes 文档,但似乎没有任何方法可以做到这一点。最接近的是 ctypes.addressof
,当然,这只会给我指针的位置。
我想要这个的原因是因为我正在调用一些 C 函数,这些函数实际上需要编码为整数的原始地址(其大小等于 native 指针宽度)。
最佳答案
您可以将其转换为 c_void_p
并获取值:
>>> ctypes.cast(s, ctypes.c_void_p).value
4333430692
关于python - 如何获取 ctypes.c_char_p 实例的指针地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32234970/