I really do not understand why the function and the calculation in main does not give the same answer.
The function prints 1 and the calculation in main prints 8 - the correct size:
#include <stdio.h>
void size(const int a[]) {
printf("%i\n",sizeof(a) / sizeof(a[0]));
}
int main(void) {
int array[] = { 5, 2, 4, 6, 1, 7, 3, 3 };
printf("%i\n", (sizeof(array) / sizeof(array[0])));
size(array);
return 0;
}