获取ctypes点指向的内存地址

2024-05-14 18:45:07 发布

您现在位置:Python中文网/ 问答频道 /正文

短版本: 如何获取ctypes指针指向的地址?

长版本: 我已经将一个python函数注册为一个C库的回调函数。C库需要void (*p_func)(char stat, char * buf, short buf_len)的函数签名,因此我注册了一个合适的python函数。当我进入python函数时,我想知道由buf指向的内存地址。我该怎么做?


Tags: 函数版本len地址ctypesstat指向short
2条回答
real_adr = cast(anyctypespointer, c_void_p).value

适用于任何缺少.content的ctypes指针甚至函数指针等

我通过阅读文档自己解决了这个问题。

我想知道一个库分配的内存块的内存位置。我有指向该块的ctypes指针。获取我使用的块的内存地址ctypes.addressof(p_block.contents)

我对p_block.contents != p_block.contents的理解出现了混乱,但后来我意识到所有p_block.contents对象都有相同的底层缓冲区。使用ctypes.addressof获得底层缓冲区的地址。

相关问题 更多 >

    热门问题