連続になったとしてもそれはたまたま連続になってるだけだし、
こういうこともできるって分かってるよな?

for (i = SIZE - 1; i >= 0; i++) {
b[i] = (int *)malloc(SIZE * sizeof(int));
}