 <p>Actually an array is a fixed pointer to the first element in the array (I think this is known as an L-value). This means your assignments at the end for the tempState, currState and nextState cannot work (as you have discovered).</p> <p>After declaring space for the 2 2d-arrays, you could then declare pointers to the 2d arrays which you might be able to work in a reasonable way. To use the pointers for indexing into the 2-d array, the compiler would need to be aware of the size of the last dimension(s) of the array.</p>