Since you are programming in C++, couldn't you simply use vectors ?
It's safer, cleaner, and more modern.
something like that:
void reset_board(std::vector < std::vector <int> >& a,int num_row)
{
a.resize(num_row);
for(int i = 0; i < num_row; i++)
{
a[i].resize(num_row);
}
for (int i=0; i< num_row ; i++)
{
for (int j=0; j< num_row ; j++)
{
a[i][j] = i+j;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
std::vector < std::vector <int> > a;
reset_board(a,4);
for (int i=0; i< 4 ; i++)
{
for (int j=0; j< 4 ; j++)
{
std::cout << a[i][j]<< " ";
}
std::cout << std::endl;
}
}