Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2014, 18:29   #1
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию Как работать со ссылками?

В с++ не силен, помогите разобраться.

Имеем это:

Код:
int b1[] = {11,22,33,0,0,0,0,0,0,0};
int b2[] = {44,55,66,0,0,0,0,0,0,0};
int b3[] = {77,88,99,0,0,0,0,0,0,0};
int b4[] = {10,11,12,0,0,0,0,0,0,0};

int aa[2][2] = {
                             {{*b1}, {*b2}},
                             {{*b3}, {*b4}}
                          };
Т.е. описан массив aa размерностью 2 на 2, который содержит указатели на мои одномерные массивы.
Таким образом у нас получается:

Код:
aa[0][0] = 11 
aa[0][1] = 44 
aa[1][0] = 77 
aa[1][1] = 10
И это понятно, т.к. имеем массив ссылок на первый элемент массивов b1, b2, и т.д.
Однако в памяти реально имеем полные массивы b1, b2 и т.д.
Как мне теперь прочитать число 22 из массива b1, имея ссылку на первый элемент этого массива?
По идее, надо взять ссылку на первый элемент, а это a[0][0]. Далее каким то образом увеличить адрес этой ссылки на следующий элемент.
Как это сделать на СИ++?
Oleg_SS вне форума Ответить с цитированием
Старый 23.04.2014, 18:43   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Oleg_SS

Т.е. описан массив aa размерностью 2 на 2, который содержит указатели на мои одномерные массивы.

первая часть вышеизложенного (до запятой_ верная, остальное - нет.
массив AA содержит первые элементы из массивов b1-b4

И это понятно, т.к. имеем массив ссылок на первый элемент массивов b1, b2, и т.д.

никаких ссылок там и в помине нет, элементы из b1-b4 просто копируются в AA
к тому же в C++ массивы ссылок запрещены

Однако в памяти реально имеем полные массивы b1, b2 и т.д.

оно то мы их имеем, только эти массивы не имеют никакого отношения к AA
Rififi вне форума Ответить с цитированием
Старый 23.04.2014, 18:50   #3
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

А если сделать так:

Код:
int b1[] = {11,22,33,444,0,0,0,0,0,0};
int b2[] = {44,55,66,555,0,0,0,0,0,0};
int b3[] = {77,88,99,666,0,0,0,0,0,0};
int b4[] = {10,11,12,777,0,0,0,0,0,0};

int *aa[2][2] = {
                           {{b1}, {b2}},
                           {{b3}, {b4}}
                        };
Я могу и дальше гадать. Можете помочь?
Oleg_SS вне форума Ответить с цитированием
Старый 23.04.2014, 18:56   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

мне плохо понятно, что ты в итоге надеешься получить, но наверное как-то так

int (*AA[2][2])[10] = { { &b1, &b2 }, { &b3, &b4 } };

auto& arr = *AA[0][0]; - тут получишь ссылку на массив b1
Rififi вне форума Ответить с цитированием
Старый 23.04.2014, 19:20   #5
Oleg_SS
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 75
По умолчанию

Похоже я уже получил то что мне надо:
Если описать так как я предлагал в последнем примере, то можно обращаться так:

a[x][y][z]

Перебирая z мы перебираем все элементы массива b
Oleg_SS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows-программа + web-обвязка, как связать и как заставить работать? Человек_Борща Общие вопросы по программированию, компьютерный форум 3 23.04.2011 19:07
Как сделать номера страниц ссылками в предметном указателе? ZmejGo Microsoft Office Word 1 27.01.2011 17:56
С++. Что и как можно внести в DLL и как потом с этим работать? dampirik Помощь студентам 5 21.09.2009 08:19
Как создать кнопки с ссылками на другие листы Excel 2007 и разместить их на отдельном листе? footman Microsoft Office Excel 0 21.07.2009 00:21
как сделать вверрху меню с ссылками, после перехода по которым подгружались бы сайты. Chaos-Delta HTML и CSS 30 12.01.2008 11:21