|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
|||||||||||
Передача функции статического двумерного массива03.08.2013, 09:08. Показов 12374. Ответов 28
Метки нет (Все метки)
Доброго времени суток, уважаемые жители Cyber-Forum. Не так давно я начал самостоятельно изучать Си++, и если честно, то ето вообще мой первый опыт в программировании, поэтому в процессе изучения накапливаются вопросы, на которые некому ответить. Мой вопрос уже задавался ранее неоднократно, так что он вряд ли покажется вам чем-то новым, но я спрошу, так как в прочитанных мноу темах я не смог удовлетворить своё любопытство.
Допустим, у нас есть статический двумерный массив
Как вы можете видеть, число строк и столбцов зависит от констант rowSize и columnSize.
0
|
|||||||||||
| 03.08.2013, 09:08 | |
|
Ответы с готовыми решениями:
28
Передача двумерного статического массива в функцию Передача двумерного статического массива в функцию Передача статического двумерного массива в функцию |
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|||||||
| 03.08.2013, 09:17 | |||||||
1
|
|||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
||||||
| 03.08.2013, 09:33 [ТС] | ||||||
|
А вызов будет выглядеть так?
У одномерного массива нужно было обязателно передавать его размер, почему же в случае с двумерным массивом ето правило не работает? Спасибо, что так быстро откликнулись)
0
|
||||||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|||||||||||||
| 03.08.2013, 09:47 | |||||||||||||
|
Массив по значению передать нельзя, либо в виде ссылки, либо в виде указателя (здесь надо отдельно передавать размер) Ссылка:
1
|
|||||||||||||
|
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
|
||||||
| 03.08.2013, 09:48 | ||||||
1
|
||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
|
| 03.08.2013, 10:04 [ТС] | |
|
А почему число строк можно не указывать?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
| 03.08.2013, 10:37 | ||||||
|
Передавать сам массив по ссылке, а размеры массива сделать шаблонными параметрами:
1
|
||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
||||||
| 05.08.2013, 19:20 [ТС] | ||||||
|
Поправьте пожалуйста, если я в чём-то ошибаюсь.
Указатель - это ячейка в памяти, которая после инициализации хранит адрес другой ячейки в памяти, хранящей некоторое значение. После применения к указателю операции разыменования, мы фактически попадаем в ту ячейку, хранящую значение. Ссылка - это альтернативное имя для переменной, к которой привязана ссылка. Тогда имя массива - это указатель на первый элемент в массиве, который хранит адрес этого первого элемента. Допустим:
0
|
||||||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|||||||
| 05.08.2013, 19:32 | |||||||
|
Добавлено через 2 минуты Но не при sizeof, например:
1
|
|||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
||||||
| 05.08.2013, 20:20 [ТС] | ||||||
|
gray_fox, большое Вам спасибо, что помогаете. Хочу всё таки уточнить разницу:
0
|
||||||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|||||||||||
| 05.08.2013, 20:26 | |||||||||||
|
StackOverflow, если имелось ввиду
Добавлено через 2 минуты Не по теме: P.S.: "внешний" const параметра ф-ии не влияет на её сигнатуру, т.е. можно так:
0
|
|||||||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
||||||
| 05.08.2013, 20:31 [ТС] | ||||||
|
Ах, вот, кажется заметил наконец, в чём разница!) Если поставить квадратные скобочки, то это уже будет своего рода разыменованием, да? А если вот так:
0
|
||||||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|||||||
| 05.08.2013, 20:33 | |||||||
Т.е. тип первого аргумента - константный указатель.
1
|
|||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
|
| 05.08.2013, 20:38 [ТС] | |
|
Значит, можно передать и указатель, если в прототипе скобочки [], а не звёздочка *, так ведь?
0
|
|
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|||||||||||||
| 05.08.2013, 20:44 | |||||||||||||
1
|
|||||||||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
|
| 05.08.2013, 20:47 [ТС] | |
|
gray_fox, большое Вам спасибо, Вы мне очень помогли!
P.S. Можно по какому-либо вопросу обращаться к Вам за помощью прямо в ЛС?
0
|
|
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|
| 05.08.2013, 20:48 | |
|
StackOverflow, лучше тему создавайте, разные люди подскажут...
0
|
|
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
||||||
| 06.08.2013, 13:54 [ТС] | ||||||
|
А как можно было бы передать двумерный массив через конструктор класса или через set-функцию класса?
Допустим ли такой вариант:
0
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 06.08.2013, 14:03 | |
|
StackOverflow, даже если бы можно было создать двумерный массив с размерами, заданными переменными (не константами), то в 7 строке - несовместимость типов.
1
|
|
| 06.08.2013, 14:03 | |
|
Помогаю со студенческими работами здесь
20
Передача статического двумерного массива, как параметра Передача двумерного статического/автоматического массива в функцию Передача двумерного массива в функции
Передача двумерного массива из функции в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
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. Пошагово создадим проект для загрузки изображения. . .
|