/** * Return an array of arrays. * Note: The returned array must be malloced, assume caller calls free(). */ int** generateMatrix(int n) { int **matrix = malloc(sizeof(int *) * n); int offset = 0; int maxOffset = n / 2 + 1; for(int i = 0; i < n; i++) *(matrix + i) = malloc(sizeof(int) * n); for(offset = 0; offset < maxOffset; offset++, n -= 2) { if(n == 0) return; else if(n == 1) matrix }