Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731

Debug assertion failed

17.02.2018, 12:17. Показов 867. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ошибка выскакивает, как решить?


Выскакивает при входе в конструктор класса ниже
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//Класс для создания плоскостей планет
class world_flat {
private:
    struct parametrs {
        GLbyte need_delete_yn = 0;
        GLchar size_world = 0;
        string type_world = 0;
 
        string directory_data;
        Text_file* data_list = 0;
        
    };
    parametrs parametr;
 
    struct parametr_types {
        GLshort frequency_x = 0;
        GLshort frequency_y = 0;
        GLshort frequency_z = 0;
 
        GLbyte water_yn = 0;
        GLushort water_block_id = 0;
        //Уровень океана
        GLushort water_max_y = 0;
 
        GLushort surface_block_id = 0;
 
    };
    parametr_types parametr_type;
 
    //Хранит информацию о блоках
    struct data_blocks {
        chank_256x256* chanks_256x256 = 0;
    };
    data_blocks data_block;
 
public:
    //начиная с 10 степени т.е. 1024 и до 14 т.е. 16384
    world_flat(GLchar size_type, string type_planet) {
 
        parametr.type_world = type_planet;
        parametr.size_world = size_type;
 
        //Проверяем параметры планеты
        if (size_type < 10 || size_type > 14) {
            parametr.need_delete_yn = 1;
            log_error.new_error("Bad size flat world, 1024 <= need_size <= 16384; 10 <= need_size_type <= 14");
        }
 
        //пытаемся загрузить тип планеты
        parametr.directory_data = "Generator/world/" + parametr.type_world + "/main.txt";
        if(parametr.data_list == 0){
            parametr.data_list = new Text_file(parametr.directory_data);
        }
        if (parametr.data_list->get_sum_string() == 0) {
            log_error.new_error("null data from " + parametr.directory_data + " need more one parametrs");
            parametr.need_delete_yn = 1;
        }
        else {
            //проверяем данные и добавляем если есть
            string null;
            string data = parametr.data_list->get_directory_from_key("frequency_x ");
            if (data != null) {
                parametr_type.frequency_x = string_to_int(data);
                data = null;
            }
            data = parametr.data_list->get_directory_from_key("frequency_y ");
            if (data != null) {
                parametr_type.frequency_y = string_to_int(data);
                data = null;
            }
            data = parametr.data_list->get_directory_from_key("frequency_z ");
            if (data != null) {
                parametr_type.frequency_z = string_to_int(data);
                data = null;
            }
            data = parametr.data_list->get_directory_from_key("surface_block_id ");
            if (data != null) {
                parametr_type.surface_block_id = string_to_int(data);
                data = null;
            }
            data = parametr.data_list->get_directory_from_key("water_yn ");
            if (data != null) {
                parametr_type.water_yn = string_to_int(data);
                data = null;
            }
            data = parametr.data_list->get_directory_from_key("water_block_id ");
            if (data != null) {
                parametr_type.water_block_id = string_to_int(data);
                data = null;
            }
            data = parametr.data_list->get_directory_from_key("water_max_y ");
            if (data != null) {
                parametr_type.water_max_y = string_to_int(data);
                data = null;
            }
        }
        
        //Если все ок с данными
        if (!parametr.need_delete_yn) {
            //создаем планету указанного размера
            if (data_block.chanks_256x256 == 0 && parametr.size_world == 12) {
                data_block.chanks_256x256 = new chank_256x256(0, 0, 0);
            }
        }
 
    }
    ~world_flat() {
        
    }
};
Ошибка выскакивает сразу после начала конструктора world_flat(GLchar size_type, string type_planet) процесс дальше не идет, даже внутренние данные структуры не успевают заполниться нулями. В чем дело? впервые с такой фигней столкнулся.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2018, 12:17
Ответы с готовыми решениями:

Debug Assertion Failed!
Доброго времени суток! Не могу понять где ошибка, подскажите пожалуйста. код: #include &quot;stdafx.h&quot; #include...

Debug assertion failed!
пишу библиотеку функции для работы с массивом. В функции вставки со сдвигом возникает ошибка при вызове realloc #define...

Debug Assertion Failed
Привет всем. Написал такую программу. #include &lt;stdio.h&gt; int n, m; int i, q, d; void merge(int a, int b, int c, int n, int...

5
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
17.02.2018, 12:21
А с какими параметрами объект создается? Случаем, не получается такого?
world_flat(/*что-то*/, nullptr);
0
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
17.02.2018, 13:36  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
А с какими параметрами объект создается?
C++
1
        world = new world_flat(12, "earth_type");
Добавлено через 1 час 12 минут
переделал
C++
1
2
        string test = "earth_type";
        world = new world_flat(12, test);
тоже самое.


Вот не понимаю, как string type_planet может быть нульптр если принимается не указатель даже.
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
17.02.2018, 13:46
Цитата Сообщение от koker007 Посмотреть сообщение
Вот не понимаю, как string type_planet может быть нульптр если принимается не указатель даже.
Вот так:
C++
1
2
3
4
5
    struct parametrs {
        //...
        string type_world = 0;
        //...        
    };
2
2734 / 888 / 331
Регистрация: 10.02.2018
Сообщений: 2,102
17.02.2018, 13:48
Цитата Сообщение от koker007 Посмотреть сообщение
Ошибка выскакивает сразу после начала конструктора
При входе в конструктор или в процессе работы конструктора?
Если поставить точку останова на первую строку кода конструктора, то до неё доходит или раньше вылетает?
0
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
17.02.2018, 14:40  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
string type_world = 0;
Спасибо, тороплюсь и делаю ошибки... спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2018, 14:40
Помогаю со студенческими работами здесь

Debug Assertion Failed C++
Здравствуйте. Не могу понять что не так. Выдает ошибку. Помогите разобраться и подправить. #include&lt;string.h&gt; ...

Debug assertion failed
Здравствуйте! Есть 2 двусвязных списка. Нужно написать метод merge который эти списки соединяет. Сам метод я написал. Запускаю, ввожу...

Debug Assertion Failed!
Доброго времени суток. Имеется код: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main() { setlocale(LC_ALL,...

Debug assertion failed
Я в с++ делаю первые шаги, так-что прошу сильно не пинать :) При вызове этой функции int qwerty(CComQIPtr &lt;IBody2&gt; pBody) { ...

Debug Assertion Failed
Ошибка. Не могу понять что не так. Как я понял с дебагера, проблема во втором освобождении памяти. Вообщем хелп ми) // hw_3.cpp :...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru