I have this code where I pass a 1-d array to a function, and try and print it. However, I am not able to print the size of the array inside the function where it's passed.
#include <stdio.h>
int main(void)
{
 int a[] = {1,2,3,4,5,6,7};
 /* works */
 printf("size of a==%d\n",sizeof(a));
 fun(a);
 return 0;
}
int fun(int a[])
{
 int i = 0;
 /* does not work */
 printf("size of a==%d\n",sizeof(a));
 for(i=0;i<(sizeof(a)/sizeof(int));i++)
  printf("%d ",a[i]);
 /* works */
 for(i=0;i<10;i++)
  printf("%d ",a[i]);
}
EDIT: How can I calculate the number of elements in the array if I don't want to pass the number of elements as another argument say,
fun(a, sizeof(a)/sizeof(int));
and receive as
int fun(int a[], int n)
{
}
 
     
    