는 나는 사이 썬의 방법으로 전달되는 바이트 문자열을 가지고, 나는 C 함수로 전달해야합니다 내가 C-땅 내부의 구조체에 저장되어 전달어떻게 cython 변수를 활성 상태로 유지합니까?
def stuff(bytes b):
#b is b'something'
some_c_function(b, len(b))
포인터. 그것이 사용될 때까지 b
이 사라 졌으므로 세그먼트 오류가 발생합니다. 함수 밖에서 어떻게 살아야합니까?
from libc.stdlib import malloc, memcpy
def stuff(bytes b):
cdef char *data
data_len = len(b)
data = malloc(data_len)
memcpy(data, b, data_len)
some_c_function(data, data_len)
을하지만 난 malloc
호출에 오류가 발생합니다 : Obtaining char * from temporary Python value
합니다.