fork download
  1. #include <stdio.h>
  2.  
  3. void func0(int a[3])
  4. {
  5. printf("a = %zu\n", sizeof a);
  6. }
  7.  
  8. typedef int ARRAY_t[3];
  9. void func1(ARRAY_t a)
  10. {
  11. printf("a = %zu\n", sizeof a);
  12. }
  13.  
  14. struct Ary { int elm[3]; };
  15. void func2(struct Ary a)
  16. {
  17. printf("a = %zu\n", sizeof a);
  18. }
  19.  
  20. int main(void) {
  21. int a0[3];
  22. ARRAY_t a1;
  23. struct Ary a2;
  24.  
  25. printf("sizeof pointer = %zu\n", sizeof(void*));
  26. printf("sizeof a0 = %zu\n", sizeof a0);
  27. printf("sizeof a1 = %zu\n", sizeof a1);
  28. printf("sizeof a2 = %zu\n", sizeof a2);
  29.  
  30. func0(a0);
  31. func1(a1);
  32. func2(a2);
  33.  
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0s 10320KB
stdin
Standard input is empty
stdout
sizeof pointer = 8
sizeof a0 = 12
sizeof a1 = 12
sizeof a2 = 12
a = 8
a = 8
a = 12