First of I want to say using multidimensional arrays is very cumbersome and I (almost) never use them. It is often easier to use a 1D array/vector and index into that like y*width+x and/or wrap it inside a class.
But if you really want to use them you can pass in the Grid as a parameter like this and make the return type void.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
void Assign_Array(string line, ifstream& in_file, string Grid[size][size])
{
string numline;
if( line == "N")
{
for ( int y=0; y<=8; y++)
{
getline(in_file,numline);
for ( int x=0; x<=8;x++)
{
Grid[x][y]=numline[x];
}
}
}
}
Forgot to mention, to pass or return an array pointer, better use a dynamic array.
Returning a static array pointer barely helps because there's no direct assignment operator for it.