#include <iostream>
#include <cassert>
using namespace std;
int main(void)
{
int size;
cout << "Input square matrix size (1-9):";
cin >> size;
#ifdef _DEBUG // 请设置为Debug模式以使DEBUG宏有效
assert(1 <= size && size < 10);
#else
if (size<1 || size>9)
{
cout << "We then set size=5" << endl;
size = 5;
}
#endif
int** mat = new int*[size];
for (int i = 0; i < size; ++i)
{
mat[i] = new int[size];
}
cout << "Matrix data:\n";
int* ptr = 0;
for (int i = 0; i < size; ++i)
{
ptr = mat[i];
for (int j = 0; j < size; ++j)
{
mat[i][j] = ::rand() % 50 + 50;
cout << mat[i][j] << "/" << ptr[j] << " ";
}
cout << endl;
}
cout << "Elem address:\n";
cout << "Base:"<< mat << endl;
for (int i = 0; i < size; ++i)
{
cout <<"Row"<<i+1<<":"<< mat[i] << endl;
}
for (int i = 0; i < size; ++i)
{
delete[] mat[i];
}
delete[] mat;
cout << "Delete but not set to NULL: mat="<< mat << endl;
mat = NULL;
cout <<"Delete and then set to NULL: mat="<< mat << endl;
system("PAUSE");
return 0;
}