我有一个用C编写的DLL:
void fill(int* a) {
a[0] = 2;
a[1] = 3;
a[2] = 5;
}
我想要做的是创建一个包含写入a
的数字的numpy数组。
我试过了:
import ctypes
_dll = ctypes.CDLL("mydll.so")
type_ = np.int32
bf = ctypes.create_string_buffer(3 * np.dtype(type_).itemsize)
_dll.fill(bf)
a = np.frombuffer(bf.value, dtype=type_)
print(a)
它给出错误:
a = np.frombuffer(bf.value, dtype=type_)
ValueError: buffer size must be a multiple of element size
我的python代码出了什么问题?