Warum ist die Array-Größe 1 [duplizieren]
Mögliche Duplikate:
Größe eines Arrays in der Programmiersprache C?
Ich versuche, eine Funktion zu schreiben, die 1s zurückgibt, wenn sich ein Wert im Array befindet. Hier ist der Code:
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;
}
Das Problem ist, dassarrayL = sizeof(*iArray) / sizeof(int);
Wird immer mit 1 ausgewertet, auch wenn das Array 20 Elemente enthält. Warum?