python ctypes – 传递numpy数组 – 奇数输出

前端之家收集整理的这篇文章主要介绍了python ctypes – 传递numpy数组 – 奇数输出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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

一切都对吗?

猜你在找的Python相关文章