![]() |
|
Модераторы: bsa |
![]()
|
|
| kostay |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
есть массив int a[8][8];
как мне его вернуть 4ерез функцию
запускается но как дело доходит до вот етого выскакивает табли4ка the memory could not be read |
||||
|
|||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Скорее всего не выделена память в том месте матрицы, куда пишешь. Но вообще маловато и кода и инфы, хоть бы компилятор указал.
|
|||
|
||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
mvs
|
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
kostay, помимо того что бы "вернуть" сам массив ты должен знать его параметры - ибо необходимо будет выделять память.
|
|||
|
||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Добавлено через 52 секунды я знаю.. а как выделять? |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
Это сообщение отредактировал(а) mrbrooks - 1.10.2008, 14:54 |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
kostay,
как мне его вернуть 4ерез функцию вернуть массив нельзя. используй двойной указатель |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Глупость, конечно, но раз нет желания возиться с памятью напрямую, то, может, std::vector использовать? std::vector< std::vector<int> > точнее.
|
|||
|
||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
решение брукса помогло... именно надо 4тоб не в векторе а в таблицы были зна4ения
|
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
||||
|
||||
| J0ker |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
совершенно правильно ибо int [8][8] и int** - совершенно разные по реализации типы |
||||||
|
|||||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
J0ker, можно подробнее?
|
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
||||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
type ptr[x][y] - размещает данные в непрерывном блоке и доступ к элементу [a][b] осуществляется (адресная арифметика): *(ptr+a*y+b) если рассматривать type **ptr как двумерный массив, то размещение в памяти реализуется как одномерный массив УКАЗАТЕЛЕЙ на массивы type: ((ptr[a])[b]) == *(*(ptr+a)+b) т.о. типы эти несовместимы принципиально. Ну а синтаксически это просто РАЗНЫЕ типы... |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
В данном конкретном случаем мы рассматриваем не type **ptr как двумерный массив, а двумерный массив как type **ptr. Это - частный случай, когда указатели указывают не на произвольные места в памяти, а на соседние. Я ошибаюсь? |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |