Найти количество элементов массива - C (СИ)
Формулировка задачи:
Если делать так, то все получается правильно. Выдает 5
Но мне нужно задать функцию, т.е. пытаюсь сделать вот так
Получается 1.
Помогите пожалуйста, задать функцию правильно
#include <stdio.h>
#include <conio.h>
int main(){
int u[]={1, 4, 1, 2, 8};
printf("Kolichestvo elementov massiva %d\n", sizeof(u) / sizeof(u[0]));
_getch();
return 0;
}#include <stdio.h>
#include <conio.h>
int degr(int a[]){
return sizeof(a) / sizeof(a[0]);
}
int main(){
int u[]={1, 4, 1, 2, 8};
printf("Kolichestvo elementov massiva %d\n",degr(u));
_getch();
return 0;
}
Кто-нибудь может мне помочь? Почему когда передаю массив в функцию, не получается определить кол-во элементов массива? Может есть другой способ решения этой задачи?
Решение задачи: «Найти количество элементов массива»
textual
Листинг программы
#define arr_size(arr) (sizeof arr / sizeof arr[0])
...
int a[10];
printf("%d\n", arr_size(a));
Объяснение кода листинга программы
- В коде определен макрос
arr_size, который принимает в качестве аргумента массив и возвращает его размер в байтах, разделивsizeofнаsizeofпервого элемента массива. - Задается массив
aразмером 10 элементов. - Вызывается функция
printfс аргументомarr_size(a), которая выводит на экран размер массиваa.