Cython을 사용하여 C++ 라이브러리 주위에 래퍼를 작성하려고합니다. 그러나 라이브러리의 함수 중 하나가 매개 변수 const char**
을 사용하므로 문제가 발생합니다. 명백하게, C++은 문자열 목록을 전달할 때이 딜레마에 빠지게하는이 변환 (Why am I getting an error converting a ‘float**’ to ‘const float**’?)을 수행 할 수 없습니다.이 함수를 x
이라고 부르 자요. 해당 char ** 객체를 생성하려고합니다. ,의는 루프의 malloc과를 사용하여, 그것을 a
을 부르 자 :Cython에서 char **을 const char **로 변환하는 방법?
def f(x):
cdef char** a = <char**> malloc(len(x) * sizeof(char*))
for index, item in enumerate(x):
a[index] = item
......
해결 방법이 있나요? 내가 생각할 수있는 유일한 것은 const_cast
을 사용하고 있으며, 그것이 Cython에서 구현되는지 여부에 대한 세부 사항을 찾을 수 없습니다 ....
, 감사합니다! – Alex
목록'x'가 어딘가에서 참조되는 한 작동합니다. 그 후, 배열은 할당이 해제되어 재사용 될 수있는 메모리 위치를 가리 킵니다. 또한'x'의 내용을 변경하면 문제가 발생할 수 있습니다. –