I have seen dozens of questions about “what’s wrong with my code” regarding multidimensional arrays in C. For some reason people can’t seem to wrap their head around what is
In C since C99, even dynamic multidimensional arrays can be easily allocated in one go with malloc and freed with free:
malloc
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);