Why am I getting a null error?

Why am I getting a null error on the last line of this code.
I am setting it up in a nested loop of i and j.
Grid is defined as:
Private Transform[,] Grid;
wall is defined as:
Public Transform wall; (although I have also tried this as Gameobject, but Transform works ok)

Transform newCell;
newCell = (Transform)Instantiate(wall, new Vector3(i, j, 0), Quaternion.identity);
newCell.name = string.Format("WALL ({0},0,{1})",i,j);
newCell.parent = transform;	
Grid[i, j] = newCell;

private Transform[,] Grid;

will just declare the pointer for a 2D array, you still have to instantiate the locations to be used:

 private Transform[,] Grid = new Transform[valueX, valueY];