#include <stdio.h>
void func0(int a[3])
{
printf("a = %zu\n", sizeof a
); }
typedef int ARRAY_t[3];
void func1(ARRAY_t a)
{
printf("a = %zu\n", sizeof a
); }
struct Ary { int elm[3]; };
void func2(struct Ary a)
{
printf("a = %zu\n", sizeof a
); }
int main(void) {
int a0[3];
ARRAY_t a1;
struct Ary a2;
printf("sizeof pointer = %zu\n", sizeof(void*)); printf("sizeof a0 = %zu\n", sizeof a0
); printf("sizeof a1 = %zu\n", sizeof a1
); printf("sizeof a2 = %zu\n", sizeof a2
);
func0(a0);
func1(a1);
func2(a2);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGZ1bmMwKGludCBhWzNdKQp7CglwcmludGYoImEgPSAlenVcbiIsIHNpemVvZiBhKTsKfQoKdHlwZWRlZiBpbnQgQVJSQVlfdFszXTsKdm9pZCBmdW5jMShBUlJBWV90IGEpCnsKCXByaW50ZigiYSA9ICV6dVxuIiwgc2l6ZW9mIGEpOwp9CgpzdHJ1Y3QgQXJ5IHsgaW50IGVsbVszXTsgfTsKdm9pZCBmdW5jMihzdHJ1Y3QgQXJ5IGEpCnsKCXByaW50ZigiYSA9ICV6dVxuIiwgc2l6ZW9mIGEpOwp9CgppbnQgbWFpbih2b2lkKSB7CglpbnQgYTBbM107CglBUlJBWV90IGExOwoJc3RydWN0IEFyeSBhMjsKCQoJcHJpbnRmKCJzaXplb2YgcG9pbnRlciA9ICV6dVxuIiwgc2l6ZW9mKHZvaWQqKSk7CglwcmludGYoInNpemVvZiBhMCA9ICV6dVxuIiwgc2l6ZW9mIGEwKTsKCXByaW50Zigic2l6ZW9mIGExID0gJXp1XG4iLCBzaXplb2YgYTEpOwoJcHJpbnRmKCJzaXplb2YgYTIgPSAlenVcbiIsIHNpemVvZiBhMik7CgoJZnVuYzAoYTApOwoJZnVuYzEoYTEpOwoJZnVuYzIoYTIpOwoKCXJldHVybiAwOwp9Cg==