![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Robix |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 1.6.2009 Репутация: нет Всего: нет |
Здравствуйте. Хочу понять, можно ли создать двумерный массив, затем сделать указатель на указатели на его строки и через возвращенный из функции указатель на указатель получить доступ ко всем элементам массива. Можете посмотреть и подправить, что не так. Если возможно )
Это сообщение отредактировал(а) Robix - 9.7.2015, 12:23 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Robix, идея у тебя правильная, но реализация подкачала. При завершении функции GetMatrix(), память, выделенная под pMATRIX[2] будет освобождена, в итоге ppMATRIX будет ссылаться непонятно на что. В этом случае нужно использовать динамическое выделение памяти (malloc или new).
С другой стороны, в твоем случае нет необходимости для подобных извращений. Так как доступ к любой строке можно получить напрямую: int *p = MATRIX[y] |
|||
|
||||
Robix |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 1.6.2009 Репутация: нет Всего: нет |
Точно. Спасибо. Если я объявлю int * pMATRIX[2] заранее и потом возвращю int ** ppMATRIX, который объявлен внутри функции, то мой указатель на указатель, который примет результат функции получит адрес int * pMATRIX[2] ?
Т.е. указатель сам по себе это типа переменная-адрес правильно, можно так сказать? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
int* pMATRIX[2] - это массив из 2-х элементов int*. Создается в стеке, т.е. существует до выхода из функции.
Указатели и ссылки |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |