简短版本:如何获取ctypes指针指向的地址?
长版:我已经将python函数注册为带有C库的回调.C库需要函数签名,void (*p_func)(char stat, char * buf, short buf_len)所以我注册了一个合适的python函数.当我进入python函数时,我想知道指向的内存地址buf.我怎样才能做到这一点?
Iai*_*ist 10
我通过阅读文档自行解决了这个问题.
我想知道库分配的内存块的内存位置.我有指向所述块的ctypes指针.获取我使用的块的内存地址ctypes.addressof(p_block.contents).
围绕着我的理解产生了混乱p_block.contents != p_block.contents,但后来我意识到所有p_block.contents对象都有相同的底层缓冲区.使用获得底层缓冲区的地址ctypes.addressof.
real_adr = cast(anyctypespointer, c_void_p).value
Run Code Online (Sandbox Code Playgroud)
适用于任何类型的 ctypes 指针 - 甚至是缺少的函数指针等.content
| 归档时间: |
|
| 查看次数: |
7928 次 |
| 最近记录: |