// Address the 2-D integer array containing the magic square values. No initialization is needed here.
int n, m;
int **square;
try // Checking if the columns are too much memory
{
square = new int*[size];
}
catch (...)
{
cout << "Not enough memory!" << endl;
delete[] square;
square = NULL;
return 2;
}
for (n = 0; n < size; n++)
{
try // Checking if the rows are too much memory
{
square[n] = new int[size];
}
catch (...)
{
cout << "Not enough memory!" << endl;
for (m = 0; m <= n; m++)
{
delete[] square[m];
square[m] = NULL;
}
delete[] square;
square = NULL;
break;
}
}
if ( n < size )
{
return 2; // Exit if the for loop was broken.
}