When I am trying to pass an array and evaluate the size of that array using sizeof, it is giving wrong answer whereas it is producing correct result when done in main function:
 #include<stdio.h>
 #include<string.h>
 #include<stdlib.h>
 void fun(char c[])
 {
    printf("in fun, string = %s ,size of c = %d , sizeof c[0]= %d, strlen = %d\n",c,sizeof(c),sizeof(c[0]),strlen(c));
 }
 int main()
 {
     char c[]="(a(bc)d(e)f)";
     printf("in main, via sizeof -> %d, via strlen -> %d\n",sizeof(c)/sizeof(c[0]),strlen(c));
     fun(c);
     return 0;
 }
The output is:
in main, via sizeof -> 13, via strlen -> 12
in fun, string = (a(bc)d(e)f) ,size of c = 8 , sizeof c[0]= 1, strlen = 12
Compiler is :
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
 
     
     
    