[過去ログ] 【まず1嫁】くだすれPython(超初心者用) その59 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
695(1): デフォルトの名無しさん [sage] 2024/06/21(金) 10:29:55.02 ID:M8EEKVG+(1/3) AAS
>>693693(3): デフォルトの名無しさん [sage] 2024/06/20(木) 18:12:29.06 ID:pudWG0gF(1) AAS
>>688
("wOdList", POINTER(c_uint16))
a = aa()
a.wOdList = (c_uint16 * size)()
wResがwOdListのsizeだったりするのかな?
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]
a = aa()
a.a # 0
a.b # <__main__.LP_c_ushort object at 0x000002033996A340>
a.__sizeof__() # 104
sizeof(a) # 16
a.b = (c_uint16 * 4)(9,8,7,6)
a.b # <__main__.LP_c_ushort object at 0x000002033996AAC0>
a.__sizeof__() # 104
sizeof(a) # 16
だめやん
697(1): デフォルトの名無しさん [] 2024/06/21(金) 15:09:56.96 ID:M8EEKVG+(2/3) AAS
そういう問題じゃなくて
常にPOINTER型の容量分しか無いのは可笑しい
698(1): デフォルトの名無しさん [sage] 2024/06/21(金) 15:17:35.67 ID:M8EEKVG+(3/3) AAS
少なくとも >>688688(6): デフォルトの名無しさん [sage] 2024/06/19(水) 22:24:53.92 ID:jr8KvPbD(1) AAS
ctypesで構造体宣言するときに、以下のようにc側が不完全型の配列定義であった場合は、どのように宣言すればよいでしょうか。
typedef struct aa
{
uint32 eListType;
uint16 wRes;
uint16 wOdList[];
}
class aa(Structure):
_fields_ = [("eListType",c_uint32),
("wRes",c_uint16),
("wOdList",???)
]
の質問に対して正しい答えは
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]
a = aa()
a.b = (c_uint16 * 4)() # これは間違い
sizeof(a) # 16
class bb(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 4))]
b = bb()
sizeof(b) # 12
class cc(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 8))]
c = cc()
sizeof(c) # 20
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.411s*