我正在尝试创建一个结构的指针,然后取消引用它。但它正在崩溃。我用这个简单的代码模仿了这里的行为。
from ctypes import *
import ctypes
class File(Structure):
_fields_ = [("fileSize", c_uint),
("fileName", c_byte * 32)]
f = File()
f.fileSize = 2
print(f.fileSize)
P = ctypes.POINTER(File)
p = P.from_address(addressof(f))
print(p.contents.fileSize)
有人可以指出这段代码的问题是什么吗?
提前致谢。
答案 0 :(得分:1)
这是有效的(我刚试过):
p = pointer(f)
根本不需要实例化P. 更清楚的是,鉴于p和P在屏幕上看起来非常相似:
from ctypes import *
class File(Structure):
_fields_ = [("fileSize", c_uint),
("fileName", c_byte * 32)]
f = File()
f.fileSize = 2
print(f.fileSize)
p = pointer(f)
print(p.contents.fileSize)