【发布时间】:2016-11-26 10:55:28
【问题描述】:
我正在尝试使用 SWIG 在 Python 中使用 C 库。这个 C 库通过随处的参数传递函数结果。使用在线 SWIG 手册,我成功地将整数函数结果传递给 Python,但我很难弄清楚如何为字符串执行此操作。
这是我代码的精髓:
myfunc.c:
#include <myfunc.h>
#include <stdio.h>
int mystr(int inp, char *outstr){
outstr="aaa";
printf("%s\n", outstr);
return(0);
}
myfunc.h:
extern int mystr(int inp, char *outstr);
所以基本上我的问题是 *outstr 的类型映射应该是什么样子。
提前致谢。
【问题讨论】:
-
你真的是指
outstr="aaa";吗?我怀疑你的意思是strcpy(outstr,"aaa");。 -
我猜我做到了。
-
特别是
outstr="aaa";不会改变调用者传入的字符串。outstr参数在函数中被视为局部变量,所以outstr="aaa";只是使局部@987654328 @ 指向一个未命名的、已初始化的 4 个字符数组{ 'a', 'a', 'a'. '\0' }。