169 похожих чатов

Какой способ лучше для передачи двухмерного массива в функцию? Я

не замечал что есть разница передачи динамического и статического массива 😁. С первым можно так func(int **arr, int r, int c), а со вторым так не получится.

32 ответов

112 просмотров

можно сделать чтото около структуры: https://godbolt.org/z/rhYWxT3ro хз слишком тупо

007- Автор вопроса
007
Эта идея звучит интересней

А если переставить местами поля структуры, то можно размер(ы) хранить как метадату до указателя на массив.

Передавать одномерный если не нужна переменная длина

Вы используете слова "динамический" и "статический" в каком-то своём особенно смысле? От способы выделения не должна меняться логика работы с ним. Если у вас они работают по разному, вы что-то делаете не так, и отличие не в динамичности.

²
можно сделать чтото около структуры: https://godbo...

это же не 2д массив. это просто два массива рядом. под 2д массивом понимают N*M а не N*2

007- Автор вопроса
007- Автор вопроса

Где ты тут видишь что я передаю одномерный массив?

007
Где ты тут видишь что я передаю одномерный массив?

Отвечу под этим. В си насколькоя помню, квадратные скобки типизирую переменную. То есть вот это blyat2[4][4] это отдельный тип, который имет сигнатуру blyat2[4][*]

𝕐𝕒𝕪𝕒
Отвечу под этим. В си насколькоя помню, квадратны...

blyat[4][4] - это указатель на массив указателей на массивы размера 4, который сам размера 4

Vi Chapmann
blyat[4][4] - это указатель на массив указателей н...

Неа, там работает адресная арифметика. 4*k+l

Vi Chapmann
почему диз

это не указатель на указатель

Стикер

007- Автор вопроса

Ты передашь int arr[4][4] в void func(int **arr)?

007
Ты передашь int arr[4][4] в void func(int **arr)?

нет, я передам статический массив в void func(int **arr)

что дело не в динамический или статический массив а в том что это разные структуры данных

причём тут декомпозиция. разница только в динамика vs статика

007- Автор вопроса
²
можно сделать чтото около структуры: https://godbo...

Пока что самый лучший ответ который я получил

007
Пока что самый лучший ответ который я получил

жаль что в нём нет двумерного массива

007
Пока что самый лучший ответ который я получил

И этот ответ больше про структуры данных, а не о концептуальных парадигмах языка.

007- Автор вопроса

Тут сказано что "с func(int **arr, int r, int c) не получится использовать статический массив". Нет?

007- Автор вопроса
007
Да но в определенной степени

это true/false выражение. тут нет степеней.

007- Автор вопроса
007- Автор вопроса
Алексей (lewa_j) Иванчуков
Тут сказано что "с func(int **arr, int r, int c) н...

Тут идёт речь о непосредственной передаче самого массива в функцию

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Карта сайта