Найти количество элементов массива - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д