Почему размер массива равен 1 [дубликат]
Possible Duplicate:
Sizeof an array in the C programming language?
Я пытаюсь написать функцию, которая возвращает 1, если значение находится в массиве. Вот код:
int inArrayInt(int iVal, int iArray[])
{
int i;
int arrayL = sizeof(*iArray) / sizeof(int);
int flag = 0;
for(i=0; i < arrayL; i++)
{
if(iVal == iArray[i])
{
flag = 1;
}
}
return flag;
}
Проблема в том, чтоarrayL = sizeof(*iArray) / sizeof(int);
всегда оценивается в 1, даже если массив содержит 20 элементов. Зачем?