why not make it a dynamic 2d array? In this case, you do not need to make n a constant, and you can determine the size dynamically.
int **arr, n;
arr = new int * [n];
for (i=0; i<n; i++)
{
arr[i] = new int [n];
}
Now you can access aray as arr[i][j]
To free the reverse
for (i=0; i<n; i++)
{
delete [] arr[i];
}
delete [] arr;
source
share