获取ctypes对象的地址

Ano*_*ard 5 python ctypes

我有一个缓冲区,如:

bufstr = ctypes.create_string_buffer("Test", 32)
Run Code Online (Sandbox Code Playgroud)

我如何获得该缓冲区的地址?即如果我这样做的话:

print bufstr
Run Code Online (Sandbox Code Playgroud)

喜欢:

<ctypes.c_char_Array_32 object at 0x042ACAD0>
Run Code Online (Sandbox Code Playgroud)

我知道我可以用byref()传递它,例如; 但是如果我只是想得到那个地址(除了切片那个字符串!)怎么办?

谢谢!

Joh*_*ess 7

使用ctypes.地址.

ctypes.addressof(bufstr)
Run Code Online (Sandbox Code Playgroud)


Edw*_*ang 5

我相信:

ctypes.addressof(bufstr)
Run Code Online (Sandbox Code Playgroud)

应该这样做。请注意,toString 中提到的地址是针对 Python 对象的,而不是 C 内存。