#include <iostream>
#include <typeinfo>
int main( )
{
int a[ 3 ] [ 4 ] = { { 1 , 2 , 3 , 4 } , { 5 , 6 , 7 , 8 } , { 9 , 10 , 11 , 12 } } ;
int n = sizeof ( a) / sizeof ( a[ 0 ] ) ;
int m = sizeof ( a[ 0 ] ) / sizeof ( a[ 0 ] [ 0 ] ) ;
int * end = a[ 0 ] + n * m - 1 ;
std:: cout << typeid ( a) .name ( ) << "\n " ;
std:: cout << typeid ( a[ 0 ] ) .name ( ) << "\n " ;
std:: cout << typeid ( a[ 0 ] [ 0 ] ) .name ( ) << "\n " ;
std:: cout << typeid ( end) .name ( ) << "\n " ;
std:: cout << "sizeof(a)/sizeof(a[0])\t " << sizeof ( a) << "/" << sizeof ( a[ 0 ] ) << "\n " ;
std:: cout << "sizeof(a[0])/sizeof(a[0][0])\t " << sizeof ( a[ 0 ] ) << "/" << sizeof ( a[ 0 ] [ 0 ] ) << "\n " ;
std:: cout << "sizeof(int)\t " << sizeof ( int ) << "\n " ;
std:: cout << "sizeof(end)\t " << sizeof ( end) << "\n \n " ;
int ** b = new int * [ 3 ] ;
b[ 0 ] = new int [ 4 ] ;
std:: cout << typeid ( b) .name ( ) << "\n " ;
std:: cout << typeid ( b[ 0 ] ) .name ( ) << "\n " ;
std:: cout << typeid ( b[ 0 ] [ 0 ] ) .name ( ) << "\n " ;
std:: cout << typeid ( b) .name ( ) << "\n " ;
std:: cout << "sizeof(b)/sizeof(b[0])\t " << sizeof ( b) << "/" << sizeof ( b[ 0 ] ) << "\n " ;
std:: cout << "sizeof(b[0])/sizeof(b[0][0])\t " << sizeof ( b[ 0 ] ) << "/" << sizeof ( b[ 0 ] [ 0 ] ) << "\n " ;
std:: cout << "sizeof(int)\t " << sizeof ( int ) << "\n " ;
std:: cout << "sizeof(b)\t " << sizeof ( b) << std:: endl ;
delete [ ] b[ 0 ] ;
delete [ ] b;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CmludCBtYWluKCkKewogICAgaW50IGFbM11bNF0gPSB7IHsxLCAyLCAzLCA0fSAsIHs1LCA2LCA3LCA4fSwgezksIDEwLCAxMSwgMTJ9fTsKICAgIGludCBuID0gc2l6ZW9mKGEpL3NpemVvZihhWzBdKTsKICAgIGludCBtID0gc2l6ZW9mKGFbMF0pL3NpemVvZihhWzBdWzBdKTsgIAogICAgaW50ICplbmQgPSBhWzBdICsgbiAqIG0gLSAxOwogICAgCiAgICBzdGQ6OmNvdXQgPDwgdHlwZWlkKGEpLm5hbWUoKSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8IHR5cGVpZChhWzBdKS5uYW1lKCkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCB0eXBlaWQoYVswXVswXSkubmFtZSgpIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgdHlwZWlkKGVuZCkubmFtZSgpIDw8ICJcbiI7CiAgICAgIAogICAgc3RkOjpjb3V0IDw8ICJzaXplb2YoYSkvc2l6ZW9mKGFbMF0pXHQiIDw8IHNpemVvZihhKSA8PCAiLyIgPDwgc2l6ZW9mKGFbMF0pIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgInNpemVvZihhWzBdKS9zaXplb2YoYVswXVswXSlcdCIgPDwgc2l6ZW9mKGFbMF0pIDw8ICIvIiA8PCBzaXplb2YoYVswXVswXSkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCAic2l6ZW9mKGludClcdCIgPDwgc2l6ZW9mKGludCkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCAic2l6ZW9mKGVuZClcdCIgPDwgc2l6ZW9mKGVuZCkgPDwgIlxuXG4iOwogICAgCiAgICBpbnQqKiBiID0gbmV3IGludCpbM107CiAgICBiWzBdID0gbmV3IGludFs0XTsKICAgIAogICAgc3RkOjpjb3V0IDw8IHR5cGVpZChiKS5uYW1lKCkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCB0eXBlaWQoYlswXSkubmFtZSgpIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgdHlwZWlkKGJbMF1bMF0pLm5hbWUoKSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8IHR5cGVpZChiKS5uYW1lKCkgPDwgIlxuIjsKICAgIAogICAgc3RkOjpjb3V0IDw8ICJzaXplb2YoYikvc2l6ZW9mKGJbMF0pXHQiIDw8IHNpemVvZihiKSA8PCAiLyIgPDwgc2l6ZW9mKGJbMF0pIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgInNpemVvZihiWzBdKS9zaXplb2YoYlswXVswXSlcdCIgPDwgc2l6ZW9mKGJbMF0pIDw8ICIvIiA8PCBzaXplb2YoYlswXVswXSkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCAic2l6ZW9mKGludClcdCIgPDwgc2l6ZW9mKGludCkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCAic2l6ZW9mKGIpXHQiIDw8IHNpemVvZihiKSA8PCBzdGQ6OmVuZGw7CiAgICAKICAgIGRlbGV0ZSBbXSBiWzBdOwogICAgZGVsZXRlIFtdIGI7Cn0=