#include <stdio.h>
void printSizes(int a[3][3], int (*p)[3])
{
puts("when a and p passed to a function:"); printf("sizeof a: %u\n", (unsigned)sizeof a
); printf("sizeof p: %u\n", (unsigned)sizeof p
); }
int main()
{
int a[3][3] = {{10,20,30},{40,50,60},{70,80,90}};
int (*p)[3] = { a + 0, a + 1, a + 2 };
printf("sizeof a: %u\n", (unsigned)sizeof a
); printf("sizeof a[0]: %u\n", (unsigned)sizeof a
[0]); printf("sizeof a[0][0]: %u\n", (unsigned)sizeof a
[0][0]); printf("sizeof p: %u\n", (unsigned)sizeof p
); printf("sizeof p[0]: %u\n", (unsigned)sizeof p
[0]); printf("sizeof p[0][0]: %u\n", (unsigned)sizeof p
[0][0]); printSizes(a, p);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHByaW50U2l6ZXMoaW50IGFbM11bM10sIGludCAoKnApWzNdKQp7CiAgcHV0cygid2hlbiBhIGFuZCBwIHBhc3NlZCB0byBhIGZ1bmN0aW9uOiIpOwogIHByaW50Zigic2l6ZW9mIGE6ICV1XG4iLCAodW5zaWduZWQpc2l6ZW9mIGEpOwogIHByaW50Zigic2l6ZW9mIHA6ICV1XG4iLCAodW5zaWduZWQpc2l6ZW9mIHApOwp9CgppbnQgbWFpbigpCnsKICBpbnQgYVszXVszXSA9IHt7MTAsMjAsMzB9LHs0MCw1MCw2MH0sezcwLDgwLDkwfX07CiAgaW50ICgqcClbM10gPSB7IGEgKyAwLCBhICsgMSwgYSArIDIgfTsKICBwcmludGYoInNpemVvZiBhOiAldVxuIiwgKHVuc2lnbmVkKXNpemVvZiBhKTsKICBwcmludGYoInNpemVvZiBhWzBdOiAldVxuIiwgKHVuc2lnbmVkKXNpemVvZiBhWzBdKTsKICBwcmludGYoInNpemVvZiBhWzBdWzBdOiAldVxuIiwgKHVuc2lnbmVkKXNpemVvZiBhWzBdWzBdKTsKICBwcmludGYoInNpemVvZiBwOiAldVxuIiwgKHVuc2lnbmVkKXNpemVvZiBwKTsKICBwcmludGYoInNpemVvZiBwWzBdOiAldVxuIiwgKHVuc2lnbmVkKXNpemVvZiBwWzBdKTsKICBwcmludGYoInNpemVvZiBwWzBdWzBdOiAldVxuIiwgKHVuc2lnbmVkKXNpemVvZiBwWzBdWzBdKTsKICBwcmludFNpemVzKGEsIHApOwogIHJldHVybiAwOwp9Cg==