Commit 1b964d5e authored by gabrieldemarmiesse's avatar gabrieldemarmiesse

Changed the list comprehension and also added a note about the inefficiency of this example.

parent 978640f8
...@@ -13,7 +13,7 @@ def random_noise(int number=1): ...@@ -13,7 +13,7 @@ def random_noise(int number=1):
for i in range(number): for i in range(number):
my_array[i] = ran(0, 1) my_array[i] = ran(0, 1)
return [my_array[i] for i in range(number)] return [x for x in my_array[:number]]
finally: finally:
# return the previously allocated memory to the system # return the previously allocated memory to the system
free(my_array) free(my_array)
...@@ -35,6 +35,15 @@ in cython from ``clibc.stdlib``. Their signatures are: ...@@ -35,6 +35,15 @@ in cython from ``clibc.stdlib``. Their signatures are:
A very simple example of malloc usage is the following: A very simple example of malloc usage is the following:
.. literalinclude:: ../../examples/tutorial/memory_allocation/malloc.pyx .. literalinclude:: ../../examples/tutorial/memory_allocation/malloc.pyx
:linenos:
.. note::
Here we take Python doubles (with ``ran(0, 1)``) and convert
them to C doubles when putting them in ``my_array``. After that,
we put them back into a Python list at line 19. So those C doubles
are converted again into Python doubles. This is highly inefficient,
and only for demo purposes.
Note that the C-API functions for allocating memory on the Python heap Note that the C-API functions for allocating memory on the Python heap
are generally preferred over the low-level C functions above as the are generally preferred over the low-level C functions above as the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment