a pointer to a multidimensional array

I thought I couldn't initialize anything in the .h files, but I think I was wrong?

You can't initialize things in the header file. Initialization is done in the source file.

Yes, those changes are needed and proper.