首页 > 解决方案 > 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'>

标签: pythonctypes

解决方案


推荐阅读