我正在尝试包装一个用C编写的函数,以便我可以使用SWIG
在Python中访问它我遇到的问题是它需要一个指向结构的指针,而不是指向结构的指针,例如。
int update_tracks(track_t **hash_tracks);
如果是:
int update_tracks(track_t *hash_tracks);
我没有问题,因为我可以创建参数并从python中调用函数,如下所示:
hash_tracks = track_t()
n = update_tracks(hash_tracks)
track_t是一个简单的C结构,包含一些整数,浮点数,数组等。
但我无法弄清楚如何获得我需要的hash_tracks
指针作为第一个函数的参数(即我实际上要包装的那个)
我需要一个track_t **参数(不仅仅是一个track_t *参数)的原因是hash_tracks是一个哈希表(使用uthash库),因此指向轨道表的指针可以随着函数的添加而改变。删除其实现中的track_t结构。
我很难理解如何从python中调用这样的函数。也许我需要在C中实现一些“帮助”功能或使用一些SWIG类型图来实现它?
答案 0 :(得分:1)
我想你想使用INOUT typemap,在这里记录: