[New-bugs-announce] [issue35562] Issue in sizeof() function

Amir Aslan Haghrah report at bugs.python.org
Sat Dec 22 12:07:08 EST 2018


New submission from Amir Aslan Haghrah <amiraslanhaghrah at gmail.com>:

If you define a structure which contains an 'c_int' and a 'c_double'  member. Then run the sizeof() function for it you get 16 as result as follows:

---------------------------------------------
from ctypes import c_int
from ctypes import c_double
from ctypes import sizeof
from ctypes import Structure
from struct import Struct

class issueInSizeof(Structure):
    _fields_ = [('KEY',     c_int),                
                ('VALUE',   c_double)]

print(sizeof(issueInSizeof))

---------------------------------------------
output:
16
---------------------------------------------

In continue if you add another 'c_int' to your structure and run sizeof() function as follows. It return 16 too.

---------------------------------------------
from ctypes import c_int
from ctypes import c_double
from ctypes import sizeof
from ctypes import Structure
from struct import Struct

class issueInSizeof(Structure):
    _fields_ = [('Index',   c_int),   
                ('KEY',     c_int),              
                ('VALUE',   c_double)]

print(sizeof(issueInSizeof))

---------------------------------------------
output:
16
---------------------------------------------

If python assume the size of 'c_int' 4, then it should return 12 in the first run. Also if it assume the size of 'c_int' 8 then it should return 24 in the second run.

thanks in advance.

----------
components: ctypes
messages: 332355
nosy: Amir Aslan Haghrah
priority: normal
severity: normal
status: open
title: Issue in sizeof() function
type: behavior
versions: Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue35562>
_______________________________________


More information about the New-bugs-announce mailing list