Working with arrays
Numerical and high performance calculations often make use of arrays. Cython provides an easy way to interact with them, using directly low-level C arrays, or the more general typed memoryviews.
C arrays and pointers
C arrays are a collection of items of the same type, stored contiguously in memory. Before digging into the details, it is helpful to understand (or review) how memory is managed in C.
Variables in C are like containers. When creating a variable, a space in memory is reserved to store its value. For example, if we create a variable containing a 64 bit floating point number (double
), the program will allocate 64 bit (16 bytes) of memory. This portion of memory can be accessed through an address to that memory location.
To obtain the address of a variable, we can use the address operator denoted by the &
symbol. We can also use the printf
function, as follows, available in the libc.stdio
Cython module to print the address of this variable:
%%cython ...