Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
#1

Ошибка инициализации bool*** - C++

29.10.2012, 14:37. Просмотров 393. Ответов 7
Метки нет (Все метки)

Я, похоже, совершенно не разбираюсь в указателях, так что еще один глупый вопрос: где ошибка?
C++
1
2
3
4
5
6
7
       bool*** result_array = new bool**[t + 1];
       for(int sch = 0; sch < n; sch ++){
        **result_array[sch] = new bool*[n];
        for(int sch2 = 0; sch2 < n; sch2 ++){
            *result_array[sch][sch2] = new bool[n];
        }
    }
n и t - заданные размеры массива [t+1][n][n]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 14:38     Ошибка инициализации bool*** #2
ты что сделать то хочешь?) У тебя такая же ситуация, как и в прошлый раз. Объясни свои намерения.
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 14:39  [ТС]     Ошибка инициализации bool*** #3
Хочу сделать трехмерный массив
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 14:44     Ошибка инициализации bool*** #4
звездочки убери в тех же местах где и раньше)
John Prick
757 / 690 / 124
Регистрация: 27.07.2012
Сообщений: 1,975
Завершенные тесты: 3
29.10.2012, 14:46     Ошибка инициализации bool*** #5
Трёхмерный массив - это не указатель на указатель на указатель. Трёхмерный статический массив преобразуется в такой же указатель на его первый элемент.
C++
1
2
bool HorrorBool[3][4][5];
bool * pBool = &HorrorBool[0][0][0];
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 14:56  [ТС]     Ошибка инициализации bool*** #6
Простите, John Prick, я не знаю заранее размерности массива.

Добавлено через 7 минут
Выбрасывает на строчке

Цитата Сообщение от ikmik Посмотреть сообщение
**result_array[sch] = new bool*[n];
исключение "нарушение прав доступа при чтении"
John Prick
757 / 690 / 124
Регистрация: 27.07.2012
Сообщений: 1,975
Завершенные тесты: 3
29.10.2012, 14:57     Ошибка инициализации bool*** #7
Ну в вашем коде трёхмерного массива по сути нет. Есть лишь массив указателей на bool, каждому из которых выделяется память под такой же массив указателей на bool, где уже каждый указатель указывает на одиночную переменную типа bool.

Вот так, по идее, будет работать, не проверял.
C++
1
2
3
4
5
6
7
       bool*** result_array = new bool**[t + 1];
       for(int sch = 0; sch < n; sch ++){
          result_array[sch] = new bool*[n];
        for(int sch2 = 0; sch2 < n; sch2 ++){
             result_array[sch][sch2] = new bool[n];
        }
   }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 15:03     Ошибка инициализации bool***
Еще ссылки по теме:

Ошибка инициализации переменной C++
Ошибка при инициализации C++
C++ Ошибка инициализации классов
Ошибка инициализации C++
Непонятная ошибка инициализации переменной C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 15:03  [ТС]     Ошибка инициализации bool*** #8
John Prick, Спасибо, теперь работает
Yandex
Объявления
29.10.2012, 15:03     Ошибка инициализации bool***
Ответ Создать тему
Опции темы

Текущее время: 08:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru