Передача многомерных массивов в функцию21.08.2015, 10:51. Показов 4287. Ответов 2
Метки нет Все метки)
(
Привет.
Почему при передаче многомерного массива в функцию необходимо обязательно указывать измерения, кроме первого? Зачем это нужно? Почему вместо void Function(int arr[][][]) приходится указывать void Function(int arr[][10][20])?
0
|
21.08.2015, 10:51 | |
Ответы с готовыми решениями:
2
Передача в поток многомерных массивов по указателю Передача массивов в функцию Передача массивов в функцию |
![]() |
||||||
21.08.2015, 11:08 | ||||||
![]() Решение
Из размерности высчитывается смещение нужного элемента в статических массивах. Не зная размерности, компилятор этого сделать не сможет.
Например, у нас есть двумерный мессив char arr[10][20] (по сути непрерывный кусок памяти 10*20) и мы хотим обратиться к элементу arr[2][0]. Компилятор высчитывает смешение так: 2 * 20 + 0 Т.е. без младшей размерности он этого сделать не смог бы. Добавлено через 5 минут Если тебя напрягает каждый раз писать размеры массивов, то ты можешь воспользоваться шаблонами, передавая массив по ссылке.
1
|
![]() ![]() 3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
21.08.2015, 11:24 | |
Первую размерность массива можно не указывать, так как параметр-массив воспринимается как указатель на его первый элемент, а его размер игнорируется.
В вашем примере трехмерный массив будет восприниматься как указатель на двумерный массив. Чтобы определить тип указателя, нужно знать тип объекта, на который он указывает.
1
|
21.08.2015, 11:24 | |
Помогаю со студенческими работами здесь
3
Передача массивов в функцию Передача массивов в функцию Передача массивов в функцию Передача в функцию 2х массивов Передача массивов в функцию на С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations
рестрикции доступа на сервер sshd
статья:
https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
|
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
|
Многопоточное программирование в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
|
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
|
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
|
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
|
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
|
Образование и практика
Igor3D 21.03.2025
Добрый день
А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
|
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
|
Async/await в Swift: Асинхронное программирование в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
|