「配列を引数に持つ関数」を使って、与えられた数値の平均値を求めたいのですが、その関数を

int ave(int data[])
{
int i ;
       double sum= 0 ;
for (i = 0;i < (sizeof(data) / sizeof(data[0]));i++) {
sum += data[i];
}
return sum / (sizeof(data) / sizeof(data[0])) ;
}

として定義すると、どんな配列をこの関数に渡しても、(sizeof(data) / sizeof(data[0])) = 1となってしまいます。
どこがいけないのか教えてください。