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

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

Восстановить пароль Регистрация
 
banda
1 / 1 / 0
Регистрация: 06.02.2011
Сообщений: 46
24.12.2012, 02:25     Повреждение кучи #1
После компиляции, вылетает такая ошибка:

ОС 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++ Повреждение кучи при создании нейросети с количеством слоев больше 51

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

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

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