Можно создать дубликат:
sizeof array of structs in C?
sizeof an array passed as function argumentC - SizeOf целочисленный массив всегда возвращает 4
Просто пытаюсь написать основной 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
всегда приравнивается к 4 (я знаю, что в конечном итоге разделить его на sizeof int
)
Запуск Dev-C++ с опциями компилятора по умолчанию в Windows 7.
'arr' - указатель, а не массив. Синтаксис, который вы используете в объявлении функции, - это просто глазная конфетка для 'int sum (int * arr)'. Вы можете прочитать раздел 6 [comp.lang.c FAQ] (http://c-faq.com/). – pmg
скомпилировать/для 64-битной машины вы должны увидеть 8, поскольку вы смотрите на размер указателя, а не на размер массива. –