You are assigning 2 to the first element and all the others are uninitialized but since you initialized one the rest are omitted to 0's AFAIK..
It seems to me like you are picking random values anyways are you trying to output integers or characters? By the way the fast way is not always the best way especially when you are creating a map. I think the safest way to initalize an array like you want would be to use a for loop like:
1 2 3 4 5 6 7
for( int row = 0; row < max_rows; ++row )
for( int column = 0; column < max_columns; ++column )
array[row][column] = '0'; //what ever value you want
klay, you need to learn more about arrays.
You can't simply "fill" array with giving only one value. It doesn't work that way.
Try to understand what is going on in your code- line by line - and after you understand what's going on, try to think of a way of solving your problem.
In programming, especially at the beginning of education, there are some things that seem obvious to a human - but aren't obvious to computer. That's sad fact, but once you learn how it works - it's not that hard ;)