![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Sower |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 31.7.2010 Репутация: нет Всего: нет |
Здравствуйте. Столкнулся с пока что непонятной проблемой, не могу найти ошибку в логике или это особенности с++. Здесь заполняется многомерный массив из файла, данные сразу выводятся на экран и они верны, но если после попробовать вывести содержимое массива map на экран, то оказывается, что он заполнен нулями. Укажите на ошибку, пожалуйста. Компилятор VC++ 2010 Express.
|
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
||||
|
||||
Sower |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 31.7.2010 Репутация: нет Всего: нет |
Фантом, уже понял, что напортачил именно в этом, можете тогда объяснить на будущее, что означает такая конструкция?
Это сообщение отредактировал(а) Sower - 4.1.2012, 18:32 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Это сложный вопрос. ![]() Начнем с того, что оператор-запятая - это оператор с низким приоритетом, объединяющий два выражения, в котором сначала вычисляется левое выражение, потом правое, и результат совпадает со значением правого выражения. Т.е. map[i,p,0] - это такой экзотический способ обращения к элементу map[0] (собственно, именно поэтому немедленный вывод и срабатывал - программа все время читала данные в один и тот же элемент массива, а потом его же и выводила). При желании использовать многомерный массив (или то его подобие, которое существует в C++) к его элементам следует обращаться как map[i][p][0]. Далее. Написанная Вами конструкция с new создавала одномерный массив длины 2 (по вышеупомянутой причине). Трехмерный динамический массив - это указатель на последовательность указателей на последовательность указателей на последовательность элементов. Соответственно, одним new такое не соорудить, всю эту конструкцию надо последовательно создавать (и потом столь же последовательно уничтожать). Посмотрите примеры в сети, их очень легко найти. |
|||
|
||||
Sower |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 31.7.2010 Репутация: нет Всего: нет |
Спасибо
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |