ctypes return char array with null chars

Mark Tolonen metolone+gmane at gmail.com
Mon Apr 19 11:01:37 EDT 2010

"chris cannady" <booog35 at gmail.com> wrote in message 
news:b103e85a-05d5-4195-a18f-bd143e9f57b8 at b33g2000yqc.googlegroups.com...
> Hi all,
> I am passing a ctypes struct byref to a dll. When I get the struct
> back, it looks like the char array in the struct was truncated at the
> first null char. It should be 192 bytes long, but I know the 3rd
> through 6th byte are null chars and the array was truncated right
> before byte 3.
> Is there any way to get the full array back including null chars?
> Thanks

It could depend on how your struct is declared.  Maybe this demo will help?

    >>> x=(c_char*10)()
    >>> x
    <__main__.c_char_Array_10 object at 0x00A049E0>
    >>> x.raw
    >>> x.value

'value' prints it is a string, stopping at the first null.  'raw' dumps the 
whole array.


More information about the Python-list mailing list