Python:ctypes和指向结构的指针

时间:2015-03-26 17:05:05

标签: python pointers structure ctypes

我正在尝试创建一个结构的指针,然后取消引用它。但它正在崩溃。我用这个简单的代码模仿了这里的行为。

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)

有人可以指出这段代码的问题是什么吗?

提前致谢。

1 个答案:

答案 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)