Previous: Precision, Up: Data Types and Files

#### 4.1.3 Memory Allocation

         void *fftw_malloc(size_t n);
         void fftw_free(void *p);

These are functions that behave identically to `malloc` and `free`, except that they guarantee that the returned pointer obeys any special alignment restrictions imposed by any algorithm in FFTW (e.g. for SIMD acceleration). See Data Alignment. Data allocated by `fftw_malloc` must be deallocated by `fftw_free` and not by the ordinary `free`.

These routines simply call through to your operating system's `malloc` or, if necessary, its aligned equivalent (e.g. `memalign`), so you normally need not worry about any significant time or space overhead. You are not required to use them to allocate your data, but we strongly recommend it.

Note: in C++, just as with ordinary `malloc`, you must typecast the output of `fftw_malloc` to whatever pointer type you are allocating.