获取ctypes对象的地址

8 投票
2 回答
9970 浏览
提问于 2025-04-16 13:08

我有一个缓冲区,内容如下:

bufstr = ctypes.create_string_buffer("Test", 32)

我该如何获取这个缓冲区的地址呢?也就是说,如果我执行以下操作,会显示的那个地址:

print bufstr

比如:

<ctypes.c_char_Array_32 object at 0x042ACAD0>

我知道我可以通过使用 byref() 来传递它;但是如果我只是想获取那个地址(不想切割那个字符串)呢?

谢谢!

2 个回答

5

我认为:

ctypes.addressof(bufstr)

这样做就可以了。请注意,toString中提到的地址是指Python对象的地址,而不是C语言中的内存地址。

12

使用 ctypes.addressof

ctypes.addressof(bufstr)

撰写回答