[Ironpython-users] Memory Allocation in Iron Python

Jim Pattee jimp02 at email.com
Mon Jan 23 00:50:15 CET 2012


I am trying to allocate memory in Iron Python to receive text from a DLL. The allocated memory address is passed to the DLL and the text is copied by the DLL into the memory area. The following code, which works in CPython, is used:
allocated =[]
def MemoryAllocation(size):
arr_type = c_char * size# create a c_char array
arr_obj = arr_type()# create an array object
allocated.append(arr_obj)# so the object will not be destroyed
if len(allocated)> 1:# free memory for the previous object
del allocated[0]
return addressof(arr_obj)# return a pointer
When this is used for Iron Python it results in:
“Unhandled Exception: System.AccessViolationException: Attempted to read or write
protected memory. This is often an indication that other memory is corrupt.”
The error results when the memory is copied into Python by the DLL. There are no errors displayed when executing the above code.
Why can it not write to the memory? What is the difference in Iron Python and CPython?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20120122/ca1c1fba/attachment.html>


More information about the Ironpython-users mailing list