The recommended approach when creating FFTW plans is to create the plan before you fill your input array with data (since the use of FFTW_MEASURE will “touch” your data and might change it). The documentation you quote just says that if you decided not to take the recommended approach and have data stored in the input array before creating the plan, everything should be fine if you FFTW_ESTIMATE.
Indeed, it only makes sense to use a NULL pointer if your are using FFTW_ESTIMATE and, thereafter, fftw_execute_* with valid pointers. Whether FFTW accepts a NULL when creating the plan you can just try and see…I agree that logically it is not needed at the time of planning.
Read more here: Source link