关于 ctypes 中 Array 的问题
資深大佬 : wave4yy 64
请教一下大家
from ctypes import * raw_bytes = b"x00x01x00" class Test(Structure): _fields_ = [ ("name1", c_char * 2), ("name2", c_char) ] buf = create_string_buffer(len(raw_bytes)) buf.raw = raw_bytes test = Test.from_buffer(buf) print(test.name1) print(test.name2)
输出为
b'' b'x00'
想将一串 bytes 数据直接转为结构体,试了一下上面的写法,发现存在一个问题,类型为 c_char_Array_2 的 name1 变量的值为空,反而 c_char 类型的 name2 变量的值为x00,猜测会不会是字符串的x00 截断的问题,希望能够得到解决
大佬有話說 (0)