New submission from Facundo Batista:

In the doc it says:

"""
Assigning a new value to instances of the pointer types c_char_p, c_wchar_p, 
and c_void_p changes the memory location they point to, not the contents of the 
memory block [...].

>>> s = "Hello, World"
>>> c_s = c_wchar_p(s)
>>> print(c_s)
c_wchar_p('Hello, World')
>>> c_s.value = "Hi, there"
>>> print(c_s)
c_wchar_p('Hi, there')
>>> print(s)                 # first object is unchanged
Hello, World
>>>
"""

However, c_s it's not getting "Hi, there" as "the memory location it points 
to", otherwise next access will surely segfault.

OTOH, if it *does* change the memory location, but the value is cached locally, 
which is the point of letting it change the memory location? Shouldn't it raise 
AttributeError or something?

Thanks!

----------
components: ctypes
messages: 170518
nosy: facundobatista
priority: normal
severity: normal
status: open
title: Assigning new values to instance of pointer types does not check validity
type: behavior
versions: Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15947>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to