Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 08.07.2019
Сообщений: 39

с++ где тут ошибка

29.08.2019, 22:28. Показов 1523. Ответов 4

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
 
template<typename T,int N> 
 
int arr_size(T (&arr1)[N])
{
   size_t size;
   size=sizeof(arr1)/sizeof(arr1[0]);  
    return size;
}
 
void print(int mas[])
{
for(int i=0;i<arr_size(mas);i++)
    cout<<mas[i]<<" ";
 
}
 
int main()
{
int arr[] =
{54, 70, 75, 63, 17, 59, 87, 16, 93, 81, 60, 67, 90, 53, 88, 9, 61, 8, 96, 98, 12, 34, 66, 76, 38, 55, 58, 27, 92, 45, 41, 4, 20, 22, 69, 77, 86, 35, 19, 32, 49, 15, 29, 23, 83, 95, 25, 91, 33, 47, 24, 62, 13, 42, 73, 44, 78, 72, 7, 5, 10, 48, 71, 18, 39, 97, 64, 79, 51, 74, 31, 37, 57, 30, 94, 80, 28, 1, 56, 85, 46, 100, 82, 40, 26, 21, 68, 43, 14, 3, 65, 99, 89, 52, 84, 36, 2, 6, 11, 50};
 
print(arr);
 
 
return 0;
}
Добрый вечер,подскажите почему не могу обратится к ф-ции arr_size() внутри print();
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2019, 22:28
Ответы с готовыми решениями:

Где тут ошибка?
Обьясните, что неправильно в этой программе. #include &lt;iostream&gt; using namespace std; void swap (int* a, int *b); int...

Где тут ошибка то?
#include &lt;iostream&gt; using namespace std; int main() { int b=1, c=0; while (1) { if (b==13); ...

Где тут ошибка, подскажите плз!
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; void main() { SetConsoleOutputCP(1251); ...

4
 Аватар для Cortas
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
29.08.2019, 22:36
Потому что sizeof(arr1) дает размер указателя на int, а не размер константного массива в байтах. Если хотите знать размер массива, то либо создайте свой класс-обертку, либо используйте уже то, что было написано до вас.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2019, 22:49
Лучший ответ Сообщение было отмечено maksims20515896 как решение

Решение

Цитата Сообщение от maksims20515896 Посмотреть сообщение
Добрый вечер,подскажите почему не могу обратится к ф-ции arr_size() внутри print();
Сделай
C++
1
2
3
4
5
6
7
template <typename T>
void print(T &&mas)
{
   for(int i=0;i<arr_size(mas);i++)
       cout<<mas[i]<<" ";
 
}
1
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
29.08.2019, 22:49
Цитата Сообщение от maksims20515896 Посмотреть сообщение
подскажите почему не могу обратится к ф-ции arr_size() внутри print()
void print(int arr[]) {} это тоже самое что void print(int *arr) {}. А шаблонная функция arr_size принимает своим параметром ссыску на массив.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2019, 22:51
C++
1
2
3
4
5
template<typename T, size_t N> 
size_t arr_size(T (&arr1)[N])
{
     return N;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2019, 22:51
Помогаю со студенческими работами здесь

Где тут ошибка? Программа сортировки массива по возрастанию
программа сортирует массив по возрастанию. кусок кода который выполняет сортировку взял с инета. но преп придрался к оформлению и после...

присваивание char - где тут может быть ошибка?
Есть простая функция, обратную строку должна выдавать, а вместо этого передает &quot;необработаное исключение&quot; проблема в s =...

Собственно где тут ошибка? почему я не могу ввести правельно данные. Реализация класса
#include &lt;iostream&gt; using namespace std; class Person { private: int ID; char *Name; bool Gender; double AGE; ...

Где тут отличия?
Добрый вечер. Вот есть 2 исходника с одинаковым кодом, но с разными конструкциями оператора условия. 1)#include &lt;iostream&gt; int...

Запуская программу ни какой реакции нету, где тут подвох?
#ifdef USE_PRECOMPILED_HEADER #include &lt;iostream&gt; #include &lt;cstdlib&gt; #define N 1024 using namespace std; struct ELEMENT { int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru