【问题标题】:Wrapping struct** (pointer to pointer) arguments with SWIG用 SWIG 包装 struct**(指向指针的指针)参数
【发布时间】:2016-01-26 05:23:21
【问题描述】:

我正在尝试包装一个用 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 类型映射来实现它?

【问题讨论】:

    标签: python c pointers struct swig


    【解决方案1】:

    我想你想使用 INOUT 类型映射,记录在这里:

    http://www.swig.org/Doc2.0/Arguments.html#Arguments_nn6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多