Eventuali duplicati:
sizeof array of structs in C?
sizeof an array passed as function argumentC - sizeof int matrice restituisce sempre 4
Solo cercando di scrivere una funzione di base sum()
.
int sum(int arr[]) {
int total = 0 , i = 0 , l = sizeof arr;
for(i=0;i<l;i++) {
total += arr[i];
}
return total;
}
l
equivale sempre a 4 (lo so per poi dividerlo per sizeof int
)
Esecuzione Dev-C++ con opzioni del compilatore di default in Windows 7.
'arr' è un puntatore, non un array. La sintassi che si usa nella dichiarazione di funzione è solo per gli occhi per 'int sum (int * arr)'. Ti potrebbe interessare leggere la sezione 6 delle [domande frequenti su comp.lang.c (http://c-faq.com/). – pmg
compile su/per una macchina a 64 bit dovresti vedere 8 mentre stai guardando le dimensioni del puntatore e non le dimensioni dell'array. –