请教一下大家
from ctypes import *
raw_bytes = b"\x00\x01\x00"
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 截断的问题,希望能够得到解决