SWIG C至Python Int数组

SWIG C至Python Int数组,第1张

SWIG C至Python Int数组

如果可以,请使用ctypes。更简单。但是,由于您要求输入SWIG,因此需要的是一个描述如何处理int
*的类型图。SWIG不知道可以指向多少个整数。以下摘自SWIG文档中有关多参数typemap的示例:

%typemap(in) (const int memoryCells, int *cellFailure) {  int i;  if (!PyList_Check($input)) {    PyErr_SetString(PyExc_ValueError, "Expecting a list");    return NULL;  }   = PyList_Size($input);   = (int *) malloc(()*sizeof(int));  for (i = 0; i < ; i++) {    PyObject *s = PyList_GetItem($input,i);    if (!PyInt_Check(s)) {        free();        PyErr_SetString(PyExc_ValueError, "List items must be integers");        return NULL;    }    [i] = PyInt_AsLong(s);  }}%typemap(freearg) (const int memoryCells, int *cellFailure) {   if () free();}

请注意,使用此定义时,从Python调用时,将省略

memoryCells
参数并仅传递诸如
[1,2,3,4]
for
的数组
cellFailure
。类型图将生成
memoryCells
参数。

附言:如果您愿意,我可以发布一个完整的示例(适用于Windows)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4913101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存