SWIG를 사용하여 파이썬에서 C 라이브러리를 사용하려고합니다. 이 C 라이브러리는 함수 결과를 모든 인수를 통해 전달합니다. 온라인 SWIG 매뉴얼을 사용하여, 나는 파이썬에 전달 된 정수 함수 결과를 얻는 데 성공했지만 문자 문자열에 대해이 작업을 수행하는 방법을 파악하는 데 어려움을 겪고 있습니다. SWIG typemap C char *에서 파이썬 문자열
extern int mystr(int inp, char *outstr);
그래서 기본적으로 내 질문이 어떤 타입 맵입니다 :
myfunc.c :
#include <myfunc.h>
#include <stdio.h>
int mystr(int inp, char *outstr){
outstr="aaa";
printf("%s\n", outstr);
return(0);
}
myfunc.h
이
내 코드의 본질이다 for * outstr는 다음과 같아야합니다.미리 감사드립니다.
당신은 정말'outstr에 = "AAA"를 찾으시는 것입니까? 나는 당신이'strcpy (outstr, "aaa");를 의미했다고 의심한다. –
나는 그랬다고 생각한다. –
특히'outstr = "aaa";'는 호출자가 전달하는 문자열을 변경하지 않습니다.'outstr' 매개 변수는 함수의 지역 변수로 취급되므로'outstr = "aaa"; 로컬'outstr'는 4 개의 문자'{ 'a', 'a', 'a'의 명명되지 않은, 초기화 된 배열을 가리 킵니다. '\ 0'}'. –