【发布时间】:2021-05-08 06:51:34
【问题描述】:
我想将一个 numpy 数组缓冲区的地址传递给 c 函数, 我的 C 函数如下所示:
void print_float_buff(void *buff)
{
float *b = (float *)buff;
printf("Float Data: %f, %f, %f,\n", b[0], b[1], b[2]);
}
在python中我的代码是:
import numpy as np
fun=ctypes.CDLL("./mylib.so")
l = np.array([10., 12.6, 13.5], dtype = 'float')
address, flag = l.__array_interface__['data']
fun.print_float_buff(ctypes.c_void_p(address))
A 在我的 c 函数中得到完全不同的数据。地址好像不太好。如何将正确的地址传递给我的 C 函数?谢谢。
【问题讨论】:
标签: python python-3.x numpy ctypes