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

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

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

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

29.10.2012, 14:37. Просмотров 413. Ответов 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]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2012, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка инициализации bool*** (C++):

не работает bool xor(bool a, bool b) - C++
Учусь по &quot;Базовому курсу&quot; Герберта Шилда #include &lt;iostream&gt; bool xor(bool a, bool d); int main() { bool p, q; cout...

Изменить значение bool a = true в bool a = false - C++
// Логическое выражения - варианты #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

Ошибка в bool функции - C++
#define ADD_OBJ 2 #define ADD_SUB 4 #define DEL_OBJ 8 #define DEL_SUB 16 #define ADD_RIGHT 32 #define DEL_RIGHT 64 #define READ...

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ? - C++
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? bool true(const string &amp;str) и что дает это...

тип bool ошибка обработки - C++
при вводе любого значения отличного от 0 или 1 тело в условии выполняется, т.е. введённое число 100 в type генерирует исключение: bool...

Ошибка с типом данных bool - C++
Помогите разобрать ошибку, суть следующая есть массив use, который помечает куда записывались переменные, если массив use типа bool то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 14:38 #2
ты что сделать то хочешь?) У тебя такая же ситуация, как и в прошлый раз. Объясни свои намерения.
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 14:39  [ТС] #3
Хочу сделать трехмерный массив
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 14:44 #4
звездочки убери в тех же местах где и раньше)
John Prick
778 / 711 / 131
Регистрация: 27.07.2012
Сообщений: 2,043
Завершенные тесты: 3
29.10.2012, 14:46 #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  [ТС] #6
Простите, John Prick, я не знаю заранее размерности массива.

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

Цитата Сообщение от ikmik Посмотреть сообщение
**result_array[sch] = new bool*[n];
исключение "нарушение прав доступа при чтении"
John Prick
778 / 711 / 131
Регистрация: 27.07.2012
Сообщений: 2,043
Завершенные тесты: 3
29.10.2012, 14:57 #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];
        }
   }
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 15:03  [ТС] #8
John Prick, Спасибо, теперь работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 15:03
Привет! Вот еще темы с ответами:

Ошибка при использовании vector<bool> - C++
Текст ошибки (Visual studio 2013): Ошибка 2 error C2440: return: невозможно преобразовать...

Ошибка инициализации - C++
Доброго времени суток! У меня такая проблема, создал небольшой проект в windows forms, ну мой первый калькулятор, фактически это мое первое...

Ошибка инициализации - C++
Помогите пожалуйста исправить ошибку в этой программе #include &lt;iostream&gt; using namespace std; #include &lt;cstring&gt; class ZOO ...

Ошибка инициализации - C++
При такой инициализации вылезают ошибки: error C2064: term does not evaluate to a function taking 7 arguments IntelliSense: call of...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.10.2012, 15:03
Ответ Создать тему
Опции темы

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