0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 14
1

Трёхмерный динамический массив

11.04.2017, 06:54. Показов 1885. Ответов 2
Метки нет (Все метки)

Доброго времени суток! Не могу создать трёхмерный динамический массив! Точнее создаю один раз заполняю. Но когда пытаюсь заполнить второй раз выдаёт данную ошибку (Unhandled exception at 0x00C76CC1 in Project59.exe: 0xC0000005: Access violation writing location 0xABABABAB.). Выдаёт ошибку тут Answers[ID][h] = new string[a_a]; (23 line) Кто сможет помогите пожалуйста((


ВОТ КОД:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
int Questions_amount[1000];
    int Answers_amount[1000];
    int Timer[1000];
    int ID;
    int q_a;
    int a_a;
    int counter = 0;
    string** Questions = new string *[ID];// [QuizID] [Question number]
    string*** Answers = new string **[ID]; // Answers[QuizID][Question number][Answer number]
    int** Correct_Answer = new int *[ID]; // [Quiz ID] [Question number]
 
                q_a = Questions_amount[ID];
        a_a = Answers_amount[ID];
        cout << "Questions amount " << q_a << endl;
        cout << "Answers amount " << a_a << endl;
            ///////////////////////////////////////
            for (int i = 0; i < q_a; ++i){
                Questions[i] = new string[q_a];
            }
            for (int h = 0; h < q_a; ++h){
                Answers[h] = new string *[q_a];
                for (int t = 0; t < a_a; ++t){
                    Answers[ID][h] = new string[a_a];
                }
            }
            for (int h = 0; h < q_a; ++h){
                Correct_Answer[h] = new int[q_a];
            }
        
        
        //////////////////////////////////////
    
        cout << "Name: " << Quiz_name[ID] << endl;
        cout << "Enter questions: " << endl;
        for (int y = 0; y < q_a; ++y){
            cout << y + 1 << ") ";
            cin.get();
            getline(cin, Questions[y][ID]);
            
            for (int u = 0; u < a_a; ++u){
                cout << u + 1 << ". ";
                getline(cin, Answers[ID][y][u]);
            }
            cout << "Enter correct answer for " << y + 1 << " question: ";
            cin >> Correct_Answer[ID][y];
        }
 
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2017, 06:54
Ответы с готовыми решениями:

Трехмерный динамический массив
Помогите создать трехмерный динамический массив, в c++ не сильно шарю, а в гугле нужной информации...

Динамический трёхмерный массив
Товарищи, помогите найти ошибку. Создаю 3х мерный динамический массив: int z; cout&lt;&lt;&quot;Input...

Трехмерный динамический массив
Здравствуйте друзья, я переписываю код с Delphi на C++. В Delphi был задан динамический трехмерный...

Трёхмерный динамический массив
Учусь делать многомерные динамические массивы. Написал прогу int _tmain(int argc, _TCHAR* argv)...

2
Модератор
Эксперт С++
12641 / 10135 / 6102
Регистрация: 18.12.2011
Сообщений: 27,170
11.04.2017, 07:02 2
Цитата Сообщение от Jack7 Посмотреть сообщение
string** Questions = new string *[ID];
ID не присвоено значение
Цитата Сообщение от Jack7 Посмотреть сообщение
Answers[ID][h] = new string[a_a];
C++
1
Answers[h][t] = new string[a_a];
Добавлено через 2 минуты
Цитата Сообщение от Jack7 Посмотреть сообщение
getline(cin, Questions[y][ID]);
последний элемент будет иметь номер ID-1, а не ID
0
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 14
11.04.2017, 23:27  [ТС] 3
ID задаётся только в другом месте)) Потом вводит пользователь какой нибудь айди (другой int) и если они оба равны друг другу (введённый пользователем и айди которые есть в системе) то вызывается данная функция! Это всё в классах. А на счёт остального так и не понял, но попробовал так как говорите вы, но так даже 1 раз заполниь не получилось выдало ошибку (ту же самую)

Добавлено через 9 минут
Чтобы было понятно, это программа для создания quiz, типо тестирования. Учитель создаёт тест, при создании теста автоматически задаётся айди этому тесту (тут проблем нету). Потом начинается динамическое выделение памяти тут уже проблемы. Учитель должен создать неограниченное кол-во (всегда разное) вопросов и ответов на каждый вопрос и это должно быть присвоено только к определённому тесту с определённый айди.
string Questions[ID][questions_amount]
string Answers [ID(теста)][questions_amount][answers_amount]
int Correct_answer [ID][quuestions_amount]
вот типо этого только нужно в динамической памяти. Не могу разобраться

{deleted}
 Комментарий модератора 
П.4.12.Правил
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2017, 23:27
Помогаю со студенческими работами здесь

Создать трёхмерный динамический массив
Пытаюсь создать трёхмерный динамический массив. Но создаётся не любого типа. Вроде 0 5 1. или 2 2 2...

Динамический трёхмерный массив (создать)
Помогите создать трёхмерный динамический массив. int size=10; int ***Field; Field=new...

Трехмерный динамический массив типа char
Здравствуйте! Я хочу создать двухмерную матрицу, каждым элементом которой должна являться...

Как вывести трехмерный динамический массив
народ можете подсказать) написал код, где заполняется трехмерный массив так как мне необходимо, но...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru