Python ctypes.c_char_p의 할당 매커니즘

python에서 c 라이브러리를 바인딩하기 위한 방법으로 ctypes를 쓰게 된다.

c_char_p는 c 라이브러리의 char*를 python으로 가져오는 오브젝트이다.

c_char_p는 사용된 문자열 주소값을 참조하는걸로 추측된다.

c_char_p변수 두개를 같은 문자열로 선언하면

같은 주소값을 가르킨다.

아래 파이썬 콘솔에서 입력한 코드를 참고하여 설명하겠다.

>>> from ctypes import *
>>>
>>> string1 = c_char_p(10)
>>> string2 = c_char_p(10)

>>> print string1
c_char_p(10)

>>> string1.value = ''
>>> string2.value = ''

>>> print string1
c_char_p(4294250668)

>>> print string2
c_char_p(4294250668)

고로 스트링의 동적할당을 위해선

create_string_buffer() 를 사용하도록 한다.

댓글 없음:

댓글 쓰기