Voglio ottenere la lunghezza di un array, ad esempio int array[] = {1, 2, 3, 4}
. Ho usato sizeof
per farlo.Perché sizeof (param_array) è la dimensione del puntatore?
int length(int array[])
{
return sizeof(array)/sizeof(int);
}
int main()
{
int array[] = {1, 2, 3, 4};
printf("%d\n", length(array)); // print 1
printf("%d\n", sizeof(array)/sizeof(int)); // print 4
}
Quindi, perché la sizeof(array)
nella funzione length
restituisce la dimensione del puntatore del array
? Ma nella funzione main
, funziona.
E, come devo modificare la funzione length
per ottenere la lunghezza di una matrice?
Sì, so che questa è una domanda C++, ma contiene informazioni molto utili riguardanti C così: http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in -c – chris