Вы не можете инициализировать динамически размещенный массив таким образом.Вы также не можете назначить массиву (динамическому или статическому) таким образом.Этот синтаксис действителен только при инициализации статического массива, т.е.
int a[4] = {2, 5, 6, 4};
Я имею в виду, что даже следующее недопустимо:
int a[4];
a = {1, 2, 3, 4}; //Error
В вашем случае вы ничего не можете сделать, кромескопируйте вручную каждый элемент
for (int i = 1; i<=size; ++i)
{
grid[i-1] = i;
}
Вы можете избежать явного цикла, используя алгоритмы stl, но идея та же
Некоторые из них могли бы стать допустимыми в C ++0x, я не уверен.