Search This Blog

Jan 28, 2008

Python call C function with pointer parameter

昨天折腾了一下。 可以传递指针参数了。
1. 在useSwig.i 里面加上
%module useSWIG

%inline %{
extern void add(int size, int *result);
%}

%include carrays.i
%array_functions(int, intp);

2. useSWIG.c
void add(int size, int *result)
{
}

3. runme.py
import useSWIG
a = useSWIG.new_intp(100);
useSWIG.add(100,a)
for i in range(0,100):
r = useSWIG.intp_getitem(a,i);
print r
useSWIG.delete_intp(a);

这样有点麻烦,但是能实现指针的传递。暂时先这么用。