Форум программистов, компьютерный форум CyberForum.ru

Определение размера массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шаблон как тип контейнера std::set http://www.cyberforum.ru/cpp-beginners/thread1224145.html
template<class T> int func(T&, int); typedef std::ostream_iterator<int> out_in; int main() { int xx{1, 2, 3, 4, 5, 6, 7, 7, 8, 2,234,234,2,34,23,423,3,242,42,342}; int size = func(xx, 20); std::copy(xx, xx + 20, out_in(cout, " ")); cout << "\n" << size << "\n";
C++ Успешное компилирование, но есть ошибки Такая проблема, что компилятор усердно продолжает кричать об ошибках, хотя программа нормально компилируется и запускается. Подскажите в чем проблема? Что и куда забыл добавить в ссылках на проект? PSP SDK minimal, пример из GU/Clut http://www.cyberforum.ru/cpp-beginners/thread1224112.html
Упорядочить элементы массива, располагая в первой его половине элементы, стоявшие на четных позициях C++
Есть массив: int main() { setlocale(LC_ALL,"RUSSIAN"); int array; int i, n, k, min, sumabs = 0, minabs = 0; printf_s("Введите количество элементов массива: "); scanf_s("%d", &n);
C++ Перевод числа из двоичной системы в десятичную или наоборот
Помогите написать прогу которая переводчит число из двоичной системы в десятичную или наоборот из десятичной в двоичную... Заранее спасибо!!
C++ Расставить знаки между числами от 1 до 9, чтобы получить заданное число http://www.cyberforum.ru/cpp-beginners/thread1224051.html
Доброе время суток. Помогите разобраться с задачей, пожалуйста. Нужно расставить знаки "+", "-" между числами от 1 до 9, расположенными в порядке возрастания так, чтобы в итоге получалось заданное число. У меня почему-то вообще ничего не выводит. #include <iostream> using namespace std; enum { op_plus=0, op_minus};
C++ Умножение двух матриц Помогите пожалуйста подробнее

Показать сообщение отдельно
TierX
 Аватар для TierX
19 / 19 / 0
Регистрация: 28.02.2014
Сообщений: 138
07.07.2014, 23:37     Определение размера массива
Код:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
template <class T,int N>
int arr_sz(T (&arr)[N])
{return N;}
 
void sum(int a){cout<<a;};
 
int main() {
    
    char a[]={"kak ti mena zadolbal razmer masiva!"}; //36
 
    sum(arr_sz(a));//36

Началось с того что я решил найти размер масива создаваемого неявным кол элементов типо:
p[]={"А кто его знает сколько тут букф! Небуду я их считать!"}
в голову быстро пришло sizeof(p)/sizeof(char) все ок сработало
Потом решил сделать функцию. функция упорно выкидывала 4. Я примерно понял что это размер самого указателя. Никак не удавалось сделать как хотелось потом решил создать шаблонную функцию ... Аналогично...
Гугл выдал тот код что в начале. Он работает как нужно.
При создании чегото похожего для обычной функции требует обязательно явное кол элементов масива.Что понятное дело противоречит самому назначению функции.
Вопрос:
1) Как оно работает и как такое сделать для обычной функции.
+
2) Никак не получаеться передать неявное кол. элементов или весь масив в обычную функцию. Возможно ли это? Потмоучто в шаблонной как мы видим возможно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru