私はSWIGを使ってPythonでCライブラリを使用しようとしています。このCライブラリは関数の結果をどこでも引数で渡します。オンラインのSWIGマニュアルを使用して、私はPythonに渡された整数関数の結果を得ることに成功しましたが、文字列に対してこれを行う方法を考え出すのは苦労しています。SWIGのtypemapをCのchar *から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";ローカルの 'outstr'は名前のない、初期化された' {'a'、 'a'、 'a'の4文字の配列を指します。 '\ 0'} '。 –