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

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

Войти
Регистрация
Восстановить пароль
 
banda
1 / 1 / 0
Регистрация: 06.02.2011
Сообщений: 46
#1

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

24.12.2012, 02:25. Просмотров 315. Ответов 0
Метки нет (Все метки)

После компиляции, вылетает такая ошибка:

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

Причем если нажимать - пропустить, то программа продолжает работать правильно, подскажите пожалуйста, что может быть ошибкой, как избавиться от нее.

Заранее, благодарю.

В файле квадратная матрица 4x4:

1 2 3 4
5 6 7 8
9 3 5 1
2 4 9 3

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
#include <iostream>
#include <fstream>
using namespace std;
 
 
void sdvig(int **spiral,int N);
 
int main()
{
int  Step,N;
        int i,j,c;
        cout<<"Number of element? N=";
        cin>>N;
 
 
        int **spiral=new int *[N];
 
            for (int i=0; i<N; i++)
                spiral[i]=new int[N];   
        
            ifstream in("m:\\1.txt");
 
    
        for (i=0; i<N; i++)
        {
            for(j=0;j<N;j++)
            {
                in>>spiral[i][j];
                cout<<" "<<spiral[i][j];
            }
                cout<<endl;
            
                
        }
 
sdvig(spiral,N);
 
system("pause");
 
return 0;
 
}
 
void sdvig(int **spiral,int N)
{
    int i,j,k,edge,Step,c;
    int *cur=new int [N];
    int *shift=new int [N];
    
    cout<<endl<<"How many steps to turn? Step = ";
        cin>>Step;
        
        for(k=0; k<N/2;k++) 
        {       edge = N-1-k;
                
    
        c=0;
        for(j=k;j<edge;j++)             
                {      cur[c]=spiral[k][j];
                        c++;
                }
                for(i=k;i<edge;i++)             
                {      cur[c] = spiral[i][edge];
                        c++;
                }
                for(j=edge;j>=k;j--)    
                {      cur[c] = spiral[edge][j];
                        c++;
                }
                for(i=edge-1;i>k;i--)             
                {       cur[c] = spiral[i][k];
                        c++;
                }
 
        for(i=0;i<4*(N-2*k-1);i++)
            shift[(i+Step)%(4*(N-2*k-1))]=cur[i];
         
        c=0;
        for(j=k;j<edge;j++)             
                {   spiral[k][j] = shift[c];   
                    c++;
                }
                for(i=k;i<edge;i++)             
                {    spiral[i][edge]= shift[c];
                        c++;
                }
                for(j=edge;j>=k;j--)    
                {    spiral[edge][j]= shift[c];
                        c++;
                }
                for(i=edge-1;i>k;i--)             
                {     spiral[i][k]= shift[c];
                        c++;
                }
        }
      
 
        cout<<"Result:"<<endl;
        for(i=0;i<N;i++)
        {       for(j=0;j<N;j++) 
                    cout<<" "<<spiral[i][j];
                cout<<endl;
        }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 02:25     Повреждение кучи
Посмотрите здесь:

МНК, повреждение кучи C++
C++ Повреждение автомобиля: реализация с помощью ООП
C++ Ошибка о повреждение кучи
C++ Повреждение кучи
Повреждение кучи C++
Ошибка кучи C++
C++ Повреждение кучи
Ошибка при "сборе мусора" . Повреждение кучи C++
Повреждение кучи C++
C++ Точка останова(повреждение кучи)
C++ Повреждение кучи при создании нейросети с количеством слоев больше 51
C++ Получать различные начала кучи при создании кучи внутри цикла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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