1
내가하려고 해요을 멱등 각각 다음과 같은 C 코드와 인터페이스가 없습니다 :PyList_GetItem는 꿀꺽 꿀꺽를
// example.c
#include <Python/Python.h>
PyObject *test (PyObject *self, int i) {
PyObject **x;
x = malloc(sizeof(PyObject *));
*x = PyList_GetItem(self, i);
return *x;
}
// example.i
%module example
%{
/* Put header files here or function declarations like below */
extern PyObject* test(PyObject *self, int i);
%}
extern PyObject* test(PyObject *self, int i);
제대로 컴파일 나는 확장 모듈의 벌금을 가져올 수 있습니다. 사실, 변수 a를 [{1 : 1}, {2 : 2}]로 정의하고 처음으로 example.test (a, 0)를 수행하면 {1,1}이 올바르게 반환됩니다. 파이썬 쉘에 들어가면 예상대로 [{1 : 1}, {2 : 2}]가됩니다. example.test (a, 0)를 다시 시도하면 세그먼트 화 오류가 발생합니다. 왜 이런 일이 일어나고 있는거야?