python - python ctypes malloc 返回一个 Int 而不是 void*
问题描述
我必须与一些 c 代码交互,我必须在其中传递一些数据的缓冲区。我想在 python 中分配这个缓冲区并设置值,但是malloc
返回一个Int
对象而不是正确的ctypes.c_void_p
. 我认为我做错了什么......我会很感激和指点!下面是一个说明问题的最小示例:
import ctypes
import ctypes.util
libc = ctypes.cdll.LoadLibrary(ctypes.util.find_library('c'))
libc.malloc.argtypes = [ctypes.c_size_t]
libc.malloc.restype = ctypes.c_void_p
mem = libc.malloc(ctypes.c_size_t(300))
t = type(mem) # <type 'int'>
解决方案
推荐阅读
- android - 分块加载数据到recyclerview
- r - 与绘图相比,带有ggplot的knitr钩子的不同(错误)行为
- angular - 将对象放入 @NgModule 中的提供程序
- php - 关于网站升级过程中的数据库备份
- image - resizeMode 包含在本机反应中显示图像前后的空间
- javascript - 编译两个不同的 mongodb 条目
- matlab - 可视化 3D 数组
- google-chrome-extension - 后台发送消息时未加载 content_script
- java - Java中的可逆资源修改
- reactjs - React-redux 错误“道具 `store` 在 `Root` 中被标记为必需,但它的值是 `undefined”