2011-03-25 3 views
0

나는 가변 길이 배열을 ctypes에 배열하고 싶습니다. 나는 외부 배열과 모든 내부 배열의 크기도 알고있다. 파이썬 ctypes 배열

내가 여기 흥미있는 스레드 발견 How do I emulate a dynamically sized C structure in Python using ctypes

을하지만, 이것에 문제가 (주석 How do I emulate a dynamically sized C structure in Python using ctypes 참조) 바르 클래스의 배열을 만드는 방법입니다

어쩌면 내가하는 ctypes와 함께 할 수없는 뭔가 전혀 모르겠다. 몇 시간 동안 만 모듈을 알게되고, 어떤 포인터도 감사 할 것이다.

감사합니다.

답변

1

동적 크기 데이터 구조는 C와 동일한 방식으로 ctypes로 처리됩니다. 동적 데이터에 대한 포인터를 사용합니다. 불행히도, 이것에 대한 지름길은 없습니다. ctypes 문서에는 포인터를 임의 크기의 배열로 사용하는 것과 같이 동적 데이터에 대한 포인터를 처리하는 방법에 대한 상당히 자세한 설명이 포함되어 있습니다. 처음에는 조금 이해하기 힘들 수 있습니다. 개인적으로 몇 가지 작은 테스트 응용 프로그램을 만드는 것이 ctypes 및 동적 데이터를 사용하는 데 유용하다는 것을 알았습니다. 그것은 약간의 시간과 약간의 머리를 긁적 일 수도 있지만 인터페이스는 매우 유연하므로 ctypes를 사용하여 목표를 달성 할 수있을 것으로 기대합니다.

+0

그래, 최후의 수단으로 ctypes 포인터를 사용하여 링크 된 목록을 구현하려고 생각했지만 포인터는 ctypes에서 사용할 수 있지만 실례로 연결 목록은 그렇지 않습니다. 나는 그 이유를 알지 못한다. – zseder

+0

@zseder, 내가 올바르게 이해했다면, 왜 'ctypes'에서 연결 목록을 사용할 수없는지는 c에서 "사용 가능"하지 않다는 것입니다! 당신은 당신 자신을 만들어야 만합니다. – senderle