Powiel możliwe:
sizeof array of structs in C?
sizeof an array passed as function argumentC - sizeof int array zawsze zwraca 4
Staram się pisać podstawowe sum()
funkcję.
int sum(int arr[]) {
int total = 0 , i = 0 , l = sizeof arr;
for(i=0;i<l;i++) {
total += arr[i];
}
return total;
}
l
zawsze równa się 4 (wiem, aby w końcu podzielić ją przez sizeof int
)
Running Dev-C++ z domyślnych opcjach kompilatora w Windows 7.
'arr' jest wskaźnikiem, a nie tablicą. Składnia używana w deklaracji funkcji jest po prostu eye-candy dla 'int sum (int * arr)'. Możesz przeczytać sekcję 6 z [comp.lang.c FAQ] (http://c-faq.com/). – pmg
skompilować na/dla maszyny 64-bitowej powinieneś zobaczyć 8, ponieważ patrzysz na rozmiar wskaźnika, a nie na rozmiar tablicy. –