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

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

Войти
Регистрация
Восстановить пароль
 
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
#1

ошибка debug assertion failed - C++

11.11.2013, 18:58. Просмотров 464. Ответов 2
Метки нет (Все метки)

при выполнении программы происходит ошибка debug assertion failed,
а именно попытке завершить работу программы
вот код
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
#define _CRT_SECURE_NO_WARNINGS
#include"tab.h"
 
void main()
{
    setlocale(LC_CTYPE,"Russian");
    FILE *f=fopen("input.txt","r");
    int i,fl=0,y,s1,z1,z2,z3,z4,z5,z6,z7,z8,z9,z10,z11,z12,z13,z14; bool flag=1;
    square sq;
    tab Table;
    HWND hwnd=GetConsoleWindow();
    HDC hdc=GetDC(hwnd);
    MoveWindow(hwnd,0,0,800,730,TRUE);
    RECT rt;
    srand(time(0));
    GetClientRect(hwnd,&rt);
    Table.load_data(f,rt);
    fclose(f);
    do{
                printf("<1> - добавить эемент в таблицу\n");
                printf("<2> - извлечь элемент из таблицы\n");
                printf("<3> - поис элемента в таблице\n");
                printf("<4> - распечатка элементов таблицы\n");
                printf("<5> - выход\n");
                scanf("%d",&i);
                switch(i)
            {   case 1: y=0;
                        printf("тип фигуры(1 - фигура-контур;2 - закрашенная фиура; 3 - две вложенных фигуры");
                        scanf("%d",&s1);
                        printf("введите координаты внешней фигуры\n");
                        scanf("%d %d %d %d",&z1,&z2,&z3,&z4);
                        printf("введите координаты внутренней фигуры\n");
                        scanf("%d %d %d %d",&z5,&z6,&z7,&z8);
                        printf("введите параметры цвета пера\n");
                        scanf("%d %d %d",&z9,&z10,&z11);
                        printf("введите параметры цвета кисти\n");
                        scanf("%d %d %d",&z12,&z13,&z14);
                        sq.set_figure(s1);
                        sq.set_coord(z1,z2,z3,z4,rt);
                        sq.set_in_coord(z5,z6,z7,z8,rt);
                        sq.set_pen(z9,z10,z11);
                        sq.set_brush(z12,z13,z14);
                        try{ sq.check_in_square(); sq.check_in_wind(rt); sq.check_square(); sq.check_square_in();   }
                            catch(int error)
                                {
                                    if (error==1)   {
                                                        printf("внешняя фигура не является квадратом\n");
                                                        y++;}
                                    if (error==2)   {
                                                        printf("внутренняя фигура не вложена во внешнюю\n");
                                                            y++;    }
                                    if (error==3)   {
                                                        printf("фигура не может быть вписана в окно\n");
                                                            y++;}
                                    if (error==4)   {
                                                        printf("внутренняя фигура не является квадратом\n");
                                                        y++;    }           
                                        }
                        if (y==0) Table.add_elem(sq);   
                        break;
                case 2: int kl; bool p;
                        printf("введте ключ элемента который необходимо извлечь\n");
                        scanf("%d",&kl);
                        p=Table.out_of_tab(&sq,kl);
                        if(p==false) printf("элемент не был найден в таблице\n");
                        else {  printf("элемент успешно извлечен, нарисовать элемент?\n 1 - нарисовать\n2 - нет\n");
                                scanf("%d",&kl);
                                if(kl==1) sq.select_draw(hdc);}
                        break;
                case 3: int k;bool rez;
                        printf("введите ключ элемента который необходимо искать в таблице\n");
                        scanf("%d",&k);
                        rez=Table.search(k);
                        if (rez==true) printf("элемент с ключом %d в таблице есть\n",k);
                        else printf("элемента с ключом %d в таблице нет\n",k);
                        break;
                case 4: Table.print(hdc);
                        break;
                case 5: flag=false;
                        break;
                        }
    }
    while(flag==true);
ReleaseDC(hwnd,hdc);
    }
когда в меню выбираю 5, т.е. завершить работу программы то вылетает ошибка описанная выше, иже скрин
Миниатюры
ошибка debug assertion failed  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 18:58     ошибка debug assertion failed
Посмотрите здесь:

Debug assertion failed C++
C++ Ошибка компиляции (Debug Assertion Failed)
C++ При вызове деструктора возникает ошибка Debug Assertion Failed!
Debug Assertion Failed C++
C++ Debug Assertion Failed
C++ Ошибка "Debug Assertion Failed" после выполнения программы
C++ Debug assertion failed
C++ Ошибка debug assertion failed, как избавиться?
Ошибка выполнения: Debug assertion failed C++
C++ Ошибка Debug Assertion Failed
C++ Ошибка при выводе в текстовый файл (Debug assertion failed)
Debug assertion failed C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
den4ik_fpmi
1 / 1 / 1
Регистрация: 20.10.2012
Сообщений: 166
11.11.2013, 19:12  [ТС]     ошибка debug assertion failed #2
обовление: нашел в чем ошибка, когда убрал деструктор то все стало норм, теперь помогите написать деструктор, у меня такой вот класс:
C
1
2
3
4
class tab
{ private: 
    int kol_el;
    tab_elem tab_1[N];
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.11.2013, 21:39     ошибка debug assertion failed #3
Вообще-то, для такого класса достаточно деструктора по умолчанию, нужно только увидеть, что из себя представляет tab_elem. Ваш деструктор, как выглядел?
Yandex
Объявления
11.11.2013, 21:39     ошибка debug assertion failed
Ответ Создать тему
Опции темы

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