|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.03.2010, 16:56 | #1 |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
проблема с указателем на массив
Привет всем.
Имеем структуру Код:
Код:
Пишу следующее Код:
Код:
Объясните пожалуйста, в чем дело?? P.S. для одномерных массивов трюк проходитю |
14.03.2010, 17:05 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
По моему надо так написать
Код:
Код:
|
14.03.2010, 17:09 | #3 |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
Так ведь это ж двумерный массив. Он есть указатель на указатель.
Последний раз редактировалось Sergey.Voloxov; 14.03.2010 в 17:12. |
14.03.2010, 17:11 | #4 |
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
|
однако память выделяйте, и инициализурйте переменные
Код:
подпись
|
14.03.2010, 17:21 | #5 |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
Ведь весь трюк в том, что не выделяется память на новый массив. А массивы aflist16 и aflist32 инициализируются в начале программы.
Последний раз редактировалось Sergey.Voloxov; 14.03.2010 в 17:27. |
14.03.2010, 17:35 | #6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Проблема в способе размещения и взятия элементов, они различны для статичных прямоугольных массивов и массивов в виде указателя на указатель.
t_aflist aflist16[3][8] - это одномерный массив(можете проверить сравнив адреса aflist16 и aflist16[0]), строки по 8 столбиков расположены друг за другом. t_aflist** pointer_to_aflist ожидает, что pointer_to_aflist указывает на массив указателей, каждый из которых указывает на отдельный столбик. То есть при обращении к элементу происходит два разыменования, в то время как в первом примере одно. Отсюда и выходит AV |
14.03.2010, 17:38 | #7 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
.................
и поэтому указатель на такой массив нужно объявить как int (*pMass)[8]; Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
14.03.2010, 17:47 | #8 | |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
Цитата:
Код:
Спасибо за помощь. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с вводом в массив | prod87 | Общие вопросы Delphi | 1 | 24.11.2009 22:33 |
ошибка при работе с указателем | Vladss | Общие вопросы C/C++ | 22 | 29.07.2009 03:58 |
Ошибка с указателем | nusik | Общие вопросы C/C++ | 3 | 15.07.2009 14:14 |
Подпись под указателем мыши. | Iskin | Microsoft Office Excel | 4 | 05.12.2008 11:48 |