파이썬 클래스가 포함 된 C 확장을 작성하려고합니다.동적 크기의 Python C- 확장 클래스
이 클래스는 생성자의 매개 변수 fname
으로 파일 이름을 가져온 다음 해당 파일을 메모리로로드하고 구성으로 저장합니다. 내가 무엇을 아래
:
typedef struct {
PyObject_HEAD
XmlConfig m_cfg;
} PyAgent;
static int PyAgent_init(PyAgent *self, PyObject *args) {
const char *fname;
if (!PyArg_ParseTuple(args, "s", &fname)) {
return NULL;
}
self->m_cfg.Load(fname);
return 0;
}
static PyTypeObject PyAgentType = {
PyObject_HEAD_INIT(NULL)
0, /* ob_size */
"classify.Agent", /* tp_name */
...
}
...
내가 파일을로드 할 때 나는 세그먼트 오류를 얻을. PyAgent struct
은 파일의 메모리 할당으로 인해 개체 크기가 커지기 때문에 이런 현상이 발생합니다.
PyObject_VAR_HEAD
매크로를 사용해 보았지만 도움이되지 않습니다.
실마리를 주거나 유사한 예제가 있습니까?
고맙습니다. 가장 쉬운 방법은'new' /'delete'로 선택했습니다. – San4ez