/*
Pointers to 
*/
#include <iostream>
using namespace std;
int main()
{
	cout << "Enter size: ";
	int* size;
	size =  new int;
	cin >> *size;
	int ***c = new int**[*size]; // array of pointers to pointers
	int **b = new int*[*size]; // array of pointers
	for (int i = 0; i < *size; i++)
		b[i] = new int[*size];
	cout << "Enter elements: ";
	
	for (i = 0; i < *size; i++)
		for (int j = 0; j < *size; j++)
			cin >> b[i][j];
	for (i = 0; i < *size; i++)
	{
			for (int j = 0; j < *size; j++)
				cout << b[i][j] << '\t';
			cout << endl;
	}
	cout << endl;
	


	int f = 5, *g = &f, **h = &g;
	cout << "h = " << h << "\t &g = " << &g << endl;
	cout << "**H = " << **h << endl;

	cout << g << '\t' << *h << endl;
	cout << f << '\t' << *g << '\t' << **h << endl;

	int (*x) [2] = new int[4][2]; 

	/*
	cout << "Enter new size: ";
	cin >> *size;
	delete [] b;
	b = new int[*size];
	cout << "Enter elements: ";
	for (i = 0; i < *size; i++)
		cin >> b[i];
	for (i = 0; i < *size; i++)
		cout << b[i] << '\t';
	cout << endl;
	*/

	for (i = 0; i < *size; i++)
		delete [] b[i];
	delete [] b;
	delete size;
	delete [] x;
	
	return 0;
}


