After reading for a bit, I found out that 2D arrays need to be declared via a pointer.
You are reading in the wrong place, then.
However, even before you begin to initialize the array, you need to consider this:
#define CHAR 16 //Number of characters per LCD line
#define MAX 100 //Max number of menu items
#define ROW 2 //Number of LCD rows
16 * 100 * 2 = 3200 bytes of the 2K that you have available, if you are using a 328-based board.
Try making MAX a (much) more reasonable value.