Потому что синтаксис неправильный. Это не то, как вы распределяете память.
Если вы хотите матрицу, вы, вероятно, хотите
int** grid;
и вы выделяете память следующим образом:
grid = new int*[sizex];
for ( int i = 0 ; i < sizex ; i++ )
grid[i] = new int[sizey];
Кроме того, назначение grid = {{0}};
не имеет смысла после того, как вы уже выделили память для grid
.
Не забудьте удалить память.