我正在使用ctypes,我正在将一个ndarray传递给一个c函数.
它给了我奇怪的输出行为.
下面是一些代码:
它给了我奇怪的输出行为.
下面是一些代码:
C-功能:
int foo(int * foo,int N){ for(int i=0;i<N;i++){ cout << "i " << i << " "<< foo[i] << endl; } return 0; }
Python:
from ctypes import * import numpy as np bar = cdll.LoadLibrary(".../libtest.so") N = c_int(10) check = np.ones(10,dtype=int) print check bar.foo(c_int(check.ctypes.data),N)
输出:
[1 1 1 1 1 1 1 1 1 1] i:0 out:1 i:1 out:0 i:2 out:1 i:3 out:0 i:4 out:1 i:5 out:0 i:6 out:1 i:7 out:0 i:8 out:1 i:9 out:0
一切都对吗?