ctypes双数组编码错误(1.35689368162e312>0.047098)

2024-09-24 12:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个接受双数组作为第一个参数的函数

cb_type = CFUNCTYPE(c_void_p, c_double * 2, c_int, c_int)
def mycb(cube, ndim, nparams):
    print "cube before", [v for v in cube]
    for i in range(ndim):
        cube[i] = cube[i] * 10 * math.pi
    print "cube after", [v for v in cube]

我通过通常的cb_类型(mycb)把它交给C。在

C称之为:

^{pr2}$

运行程序时,出现一些打包/解包或解码问题:

^{3}$

如何修复编码问题(python函数中的receive[0.047098,0.010474])?在


Tags: 函数infor参数type数组intdouble
1条回答
网友
1楼 · 发布于 2024-09-24 12:29:45

我通过使用指针(c\u double)而不是c\u double*2来修复它。在

新输出如下所示:

values before: 0.905349, 0.270400
cube before [0.905348643442958, 0.2703996141057701]
cube after [28.44236647177882, 8.494854412082024]
values after : 28.442366, 8.494854

相关问题 更多 >