How do I correctly set up, access, and free a multidimensional array in C?
In C since C99, even dynamic multidimensional arrays can be easily allocated in one go with malloc and freed with free: double (*A)[n] = malloc(sizeof(double[n][n])); for (size_t i = 0; i < n; ++i) for (size_t j = 0; j < n; ++j) A[i][j] = someinvolvedfunction(i, j); free(A);