配列の要素数の求め方について質問があります。
main関数から sub関数に、配列array を引数で渡して、sub関数内で配列arrayの要素数を求める方法はありますか?
以下のコードでは、main関数内では要素数を求められますが、sub関数内では求めることができませんでした。

#include <stdio.h>
#define N(array) (sizeof(array)/sizeof(array[0]))

void sub(int *array) {
  printf("%d\n", N(array));
}
int main(void) {
  int array[10] = {0};
  printf("%d\n", N(array));
  sub(array);
  return 0;
}
実行結果:
10
1