- #include <cstddef> 
- #include <iostream> 
- using namespace std; 
-   
- template<size_t N, size_t M> 
- void printPtr(int (*A)[M][N] /* Also a reference could work */) { 
-    for(int i=0; i < M; i++){ 
-       for(int j=0; j<N; j++) { 
-          cout << (*A)[i][j] << " "; 
-       } 
-       cout << endl; 
-    } 
- } 
-   
- int main() { 
-   
-     int A[][3] = { 
- 			{ 1, 2, 3 }, 
- 			{ 4, 5, 6 }, 
- 			{ 7, 8, 9 }, 
- 			{ 10, 11, 12 } 
- 	}; 
-   
- 	int(*ptrA)[4][3] = &A; // Not a decayed type 
- 	printPtr(ptrA); 
- } 
				I2luY2x1ZGUgPGNzdGRkZWY+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHNpemVfdCBOLCBzaXplX3QgTT4Kdm9pZCBwcmludFB0cihpbnQgKCpBKVtNXVtOXSAvKiBBbHNvIGEgcmVmZXJlbmNlIGNvdWxkIHdvcmsgKi8pIHsKICAgZm9yKGludCBpPTA7IGkgPCBNOyBpKyspewogICAgICBmb3IoaW50IGo9MDsgajxOOyBqKyspIHsKICAgICAgICAgY291dCA8PCAoKkEpW2ldW2pdIDw8ICIgIjsKICAgICAgfQogICAgICBjb3V0IDw8IGVuZGw7CiAgIH0KfQoKaW50IG1haW4oKSB7CgogICAgaW50IEFbXVszXSA9IHsKCQkJeyAxLCAyLCAzIH0sCgkJCXsgNCwgNSwgNiB9LAoJCQl7IDcsIDgsIDkgfSwKCQkJeyAxMCwgMTEsIDEyIH0KCX07CiAgICAKCWludCgqcHRyQSlbNF1bM10gPSAmQTsgLy8gTm90IGEgZGVjYXllZCB0eXBlCglwcmludFB0cihwdHJBKTsKfQ==