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

Повреждение кучи - C++

Восстановить пароль Регистрация
 
demon1983
3 / 3 / 0
Регистрация: 25.12.2012
Сообщений: 13
27.10.2013, 07:47     Повреждение кучи #1
Есть код
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
#include <iostream>
using namespace std;
struct STUDENT
{
    char NAME[70];
    int GROUP;
    int SES[5];
};
void f1_vvod(STUDENT *STUD1,int const col);
void f2_vivod(STUDENT *STUD1,int const col);
void f3_sort(STUDENT *STUD1,int const col);
int main()
{
    int const col=3;
    STUDENT *STUD1=new STUDENT[col];
    f1_vvod(STUD1,col);
    f2_vivod(STUD1,col);
    f3_sort(STUD1,col);
    f2_vivod(STUD1,col);
    delete []STUD1;
    system("pause");
    return 0;
};
void f1_vvod(STUDENT *STUD1,int const col)
{
    for (int i=0; i<col; i++)
    {
        cout<<"Vvedite NAME"<<endl;
        cin.getline(STUD1[i].NAME,70);
        cout<<"Vvedite GROUP"<<endl;
        cin>>STUD1[i].GROUP;
        cin.ignore();
        cout<<"Vvedite SES"<<endl;
        for (int j=0; j<5; j++)
        {
            cout<<"N "<<j+1<<"=";
            cin>>STUD1[i].SES[j];
            cin.ignore();
        }
    }
};
void f2_vivod(STUDENT *STUD1,int const col)
{
    cout<<"Vivod NAME   Vivod GROUP Vivod SES"<<endl;
    for (int i=0; i<col; i++)
    {
        cout<<STUD1[i].NAME<<"\t\t";
        cout<<STUD1[i].GROUP;
        for (int j=0; j<5; j++)
        {
            cout<<"\t\t"<<"N "<<j+1<<"="<<STUD1[i].SES[j]<<endl;
            cout<<"\t\t";
        }
        cout<<endl;
    }
};
void f3_sort(STUDENT *STUD1,int const col)
{
    STUDENT temp;
    for (int i=0; i<col; i++)
    {
        for (int j=0; j<col-i; j++)
        {
            if (STUD1[j].GROUP>STUD1[j+1].GROUP)
            {
                temp=STUD1[j];
                STUD1[j]=STUD1[j+1];
                STUD1[j+1]=temp;
            }
        }
    }
};
.

И есть ошибка
ОС Windows инициировала точку останова в Структуры 2.exe.
Это может быть вызвано повреждением кучи и указывает на ошибку в Структуры 2.exe или в одной из загруженных им DLL.
Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит Структуры 2.exe
Выведенное на экран окно содержит дополнительные данные для диагностики ошибки.

Подскажите как исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2013, 07:47     Повреждение кучи
Посмотрите здесь:

МНК, повреждение кучи C++
C++ Ошибка о повреждение кучи
C++ Повреждение кучи
Повреждение кучи C++
C++ Повреждение кучи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
27.10.2013, 08:26     Повреждение кучи #2
у меня всё норм компилится и работает...
demon1983
3 / 3 / 0
Регистрация: 25.12.2012
Сообщений: 13
27.10.2013, 08:27  [ТС]     Повреждение кучи #3
Каким компилятором пользуетесь?
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
27.10.2013, 08:51     Повреждение кучи #4
да разными, запускал на CodeBlocks вообще)
там MinGW или чет такое непомню
demon1983
3 / 3 / 0
Регистрация: 25.12.2012
Сообщений: 13
27.10.2013, 08:55  [ТС]     Повреждение кучи #5
Понятно. Я использую VS2010 экспресс. Завтра на работе попробую на MinGW.
Yandex
Объявления
27.10.2013, 08:55     Повреждение кучи
Ответ Создать тему
Опции темы

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