Я действительно не понимаю, почему функция и расчет в основном не дают одинакового ответа.
Функция печатает 1, а расчет в основных печатных изданиях 8 - правильный размер:
#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;
}