|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.09.2014, 15:51 | #1 |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Передать двумерный массив в функцию для заполнения данными | C++
Подскажите, пожалуйста, можно ли передать двумерный массив в функцию без использования указателей? Мне просто интересно. Если да, то как? С одномерным массивом это проходит. И изменения вносятся.
Код:
|
01.09.2014, 16:08 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
А чем не нравятся указатели? Лень две звёздочки поставить?
Пишем void function(int **A){} и радуемся.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
01.09.2014, 16:11 | #3 | |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Цитата:
Но интересно человеку! Понимаете?? И почему надо использовать указатели в этом случае, если возможно и без них мы можем обойтись? |
|
01.09.2014, 16:14 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
В С++ нет понятия двумерного массива, соответственно нет никакого специального для них механизма.
|
01.09.2014, 16:33 | #5 |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Оказывается можно!
Немного поэкспериментировала - то получатся так: Код:
Тоже мне "профессионалы" Лишь бы поумничать... |
01.09.2014, 16:45 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
У каждого свой стиль. Я статическими массивами не пользуюсь, а динамические в функцию передаются по указателям.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
01.09.2014, 16:56 | #7 |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Согласна.
Мне просто интересно было разобраться можно ли так сделать, как спрашивала. Если вас задело - не обижайтесь ) Это шутка была! По Вам то видно, что Вы дядя серьезный )) |
01.09.2014, 17:01 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Я ещё и весёлый. Шутки понимаю .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
01.09.2014, 19:12 | #9 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
http://rextester.com/XAWD27437 Код:
Компилятор вычислит размер массива автоматически. На языке с++ не существует динамических массивов. Последний раз редактировалось Stilet; 02.09.2014 в 19:35. |
|
01.09.2014, 19:23 | #10 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Вы ошиблись: в данном случае вы передали указатель.
Пусть вас не смущает отсутствие звездочки - это наследие языка си. На языке си для массивов существует альтернативный синтаксис для аргументов функций являющихся массивами. Вообще, у вас есть три способа передать данные в функцию: 1. По значению. В функцию передается копия аргумента. 2. По указателю. В функцию передается указатель, который инициализирован адресом аргумента. 3. По ссылке. В функцию передается ссылка аргумента. Поскольку массив нельзя передать по значению - у него нет конструктора копии, то остается передавать либо по ссылке, либо по указателю. На языке си нет ссылок, только указатели. Поэтому единственный способ для языка си обеспечить данный синтаксис - передача по указателю. http://rextester.com/UJA93052 Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как добавить новую пустую строку (для заполнения данными) в DBGridEh? | sergeykom | Компоненты Delphi | 0 | 13.04.2014 17:48 |
Передать Variant и Массив в функцию VBA | sir.andrey | Помощь студентам | 0 | 13.04.2013 06:23 |
Как передать Динамический массив в функцию? | RainCat | Помощь студентам | 4 | 13.04.2011 11:25 |
Передать двумерный массив через сокет (Debian) | Phaeleh | Qt и кроссплатформенное программирование С/С++ | 1 | 29.11.2010 07:08 |
Как передать параметру записи, что в нем параметр это статический массив с данными? | SkAndrew | Общие вопросы Delphi | 6 | 26.06.2009 02:02 |