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

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

Восстановить пароль Регистрация
 
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 14:37     Ошибка инициализации bool*** #1
Я, похоже, совершенно не разбираюсь в указателях, так что еще один глупый вопрос: где ошибка?
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]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2012, 14:37     Ошибка инициализации bool***
Посмотрите здесь:

не работает bool xor(bool a, bool b) C++
C++ Ошибка инициализации
Ошибка в bool функции C++
C++ как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
C++ Ошибка инициализации
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
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
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 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
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 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++ тип bool ошибка обработки
C++ Изменить значение bool a = true в bool a = false
C++ Ошибка с типом данных bool

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

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

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