@kaktak255

Где ошибка.....?

#include <iostream>
using namespace std;

int count(int a )
{
	return sizeof(a)/sizeof(int);
}

int main()
{
	setlocale(LC_ALL, "ru");

	int a[10] = {0};

	cout << count(a)<< endl;
	return 0;
}
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Функцию count реализуйте макросом:
#define count(arr)     (sizeof(arr) / sizeof(arr[0])

Внутри функции вы не можете получить размер статического массива, объявленного в другой функции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
int count(int* a )
Ответ написан
@FoxOne
template<class T,size_t N>
constexpr size_t count( const T (&a)[N] ) noexcept
{
	return N;
}

PS: кажется это есть std::size
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы