Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Visual C++ Тулза для поиска утечек памяти https://www.cyberforum.ru/ visual-cpp/ thread44353.html
Прога, написанная мною, сильно тормозит. Скорее всего имеются утечки памяти. Подскажите какую-нибудь тулзу для поиска утечек памяти в коде, пожалуйста. EourokeLOG
Visual C++ Передача строк между модулями VS2008 C++
Всем добрый день. Столкнулся с такой проблемой: У меня есть форма MainForm.h и фалы : msg.h и msg.cpp. На форме у меня присутствует OpenFileDialog. Когда я нахожусь в MainForm.h то получаю имя... А создать глобальную переменную? Или видимую для этих модулей функцию?
Visual C++ Сравнение даты даты изменения файлов Привет. Написал кусок проги для сравнения даты изменения файлов: #include "stdafx.h" #include "cmp_date.h" //FILE *fFile; //char* pFile; cmp_date::cmp_date() { } Попробуй такую демку: #include <windows.h> #include <sys\stat.h> int file_cmp(char *file1, char *file2) { struct _stat st1; struct _stat st2; _stat(file1, &st1); https://www.cyberforum.ru/ visual-cpp/ thread44113.html Visual C++ Как обратится к документации библиотеки моего компилятора? https://www.cyberforum.ru/ visual-cpp/ thread44181.html
Мне нужно знать какая функция какие заголовки использует и описание функции.Вот и я хочу узнать как обратится к документации моего компилятора. нажми F1 на любом ключевом слове или заголовке. Либо в той же справке вручную проведи поиск
Visual C++ Выравнивание структур https://www.cyberforum.ru/ visual-cpp/ thread44337.html
Сам в этом почти не разбираюсь, искал в инете, находил только разные вопросы в форумах, ну а нужна естественно просто какая ни будь статья на эту тему, объясняющая что и как. Может знаете где... http://msdn.microsoft.com/en-us/library/2e70t5y1.aspx Вот,посмотри Добавлено через 50 секунд http://msdn.microsoft.com/en-us/library/83ythb65.aspx и еще align Добавлено через 58 секунд...
Visual C++ Функции rename() и remove() Есть код под FreeBSD компилиться и выполняется на ура. Хочу его портировать под винду. Прога полностью на ANSI C с использованием стандартной библиотеки, по идее, проблем быть не должно. Но, иногда... эти функции расчитаны на работу с 1-м файлом или одним каталогом, мож ты каталог с файликами хош переименовать тогда ничё не выйдет, вот... я переименовываю только файл, но сбоит сначала remove()... https://www.cyberforum.ru/ visual-cpp/ thread44278.html
Visual C++ преобразовать wchar_t [255] в const TCHAR []
столкнулся с проблемой разных типов строк... wchar_t path_msk; ....................................................... static const TCHAR szFileToFind = (?????????); там где ??????... rtfm WideCharToMultiByte
Чтение огромных файлов Visual C++
Необходимо выполнять работу с огромными файлами(например в несколько Гб), чтобы после чтения обработать и вывести все в клиенсткую область(mfc приложение), естественно заливать все в память не нужно,... Ключевая фраза - Memory mapped files. тут можно посмотреть msdn, или почитать еще что-нибудь где-нибудь.
Visual C++ CImage
Здравствуйте! Есть таблица в Access. В этой таблице есть поле, которое содержит графические данные (фотографии). Вопрос: Как отобразить значение поля на CImage Заранее, спасибо. Графика в виде OLE объекта
Visual C++ Невозможно преобразовать параметр из 'const char [7]' в 'LPCTSTR'
Здравствуйте! Я совсем недавно начал изучать С++. По большей степени ничего пока не знаю :- // HeiDlg.cpp : файл реализации // #include "stdafx.h" #include "Hei.h" #include "HeiDlg.h" ... ;217792'] Тоесть MessageBox((LPCSTR)"Hello"); Если было LPCSTR, то вроде незачем, а если LPCWSTR, то строка не изменится, только указатель будет другого типа, или я что-то не понял?
Visual C++ Вывод float в окне MFC приложения VS2008EE вывод float в окне MFC приложния VisStudio2008 express Не могли бы вы подсказать какой - нибудь способ. Совсем умаялся: раньше делал только консольные приложения. создать диалоговое окно, создать на диалоге Edit Control или Static Text, по его ID получить HWND (GetDlgItem), перевести float в string (_gcvt), залить текст в контрол (SetWindowText) https://www.cyberforum.ru/ visual-cpp/ thread44270.html Visual C++ Visual Studio. Переход от C# .NET к C++ https://www.cyberforum.ru/ visual-cpp/ thread44171.html
Всем низкий поклон и уважение. Здраствуйте! Уважаемые товарищи, я написал серьёзную программу на C# .NET, ну это ушло много и времени и сил, функционал внушительный, так вот некоторые... Эх, Qt отбрасываю для себя в корзину, раз и навсегда, сделал я так чтобы exe он нормальные собирал, но теперь exe с пустой формой весит 7.39мб, в режиме Release, а это никуда не годится... это...
1 / 1 / 0
Регистрация: 04.06.2009
Сообщений: 6
0

HEAP CORRUPTION DETECTED - Visual C++ - Ответ 219761

19.07.2009, 15:49. Показов 24063. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
После нажатия на Выход (IDC_Exit) если до этого выводилась матрица (IDC_Form) выдает ошибку HEAP CORRUPTION DETECTED
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
#include <stdio.h> 
#include <windows.h>
#include "resource.h"
#include <direct.h>
#include <cmath>
#include <malloc.h>
#include <crtdbg.h>
 
char    file_name[MAX_PATH+1],customfilter[100];
 
OPENFILENAME of, sf;
 
int elem, cep;
int **matr; //Матрица смежности графа Кенига
char buf[10000], buff[10000];//Промежуточные буферы для храниния информации выводимой на экран
int f;
 
struct spisok //Динамический список
{
    int a,b;    
    spisok*next;            
};
spisok *first=NULL;
int vvod_fail() //Ввод из файла
{
    char initialdir[MAX_PATH+1];
    getcwd(initialdir,MAX_PATH+1);
    memset(&of,0,sizeof(of));
    of.lStructSize=sizeof(of);
    of.lpstrFilter= "Текстовые файлы (*.txt)\0*.txt\0" 
       "Все файлы (*.*)\0*.*\0";      
    of.nFilterIndex=1;
    sprintf(customfilter,"Использованный фильтр");
    of.lpstrCustomFilter=customfilter;
    of.nMaxCustFilter=100;
    file_name[0]='\0';
    of.lpstrFile=file_name;
    of.nMaxFile=MAX_PATH+1;
    of.lpstrInitialDir=initialdir;
    of.lpstrTitle="Диалог открытия файла";
if(GetOpenFileName(&of)!=0)
    {
        int a,b;    
        FILE*f_in;
        f_in=fopen(of.lpstrFile,"r");
        if(f_in!=NULL)// Если файл существует
        {
            spisok *tu=NULL;
            spisok *pu=NULL;
            while(fscanf(f_in,"%d %d",&a,&b)==2) //Чтение информации в список из файла
            {
                tu=new spisok;
                if(first==NULL) first=tu;
                else pu->next=tu;
                pu=tu;
                tu->a=a;
                tu->b=b;
            }
            if(pu!=NULL) pu->next=NULL;
            fclose(f_in);
            return 0;
        }
        else
        return 1;
        delete of.lpstrFile;
    }
}
void form_matr() //Формирование матрицы смежности графа Кенига
{
    int n, i, cc;
    spisok *tu;
    tu=first;
    while(tu!=NULL)
    {
        n=tu->b;
        tu=tu->next;
        for (i=0;i<n;i++)
        {
            if(elem<tu->a) elem=tu->a; //Подсчет кол-ва элементов
            tu=tu->next;            
        }
        cep++; //Подсчет кол-ва цепей
    }
    matr=(int **)calloc(cep,sizeof(int *)); //Выделение памяти под матрицу смежности
    for (i=0; i<=cep; i++) matr[i]=(int *)calloc(elem,sizeof(int));
    tu=first;
    while(tu!=NULL)
    {
        n=tu->b;
        cc=tu->a-1;
        tu=tu->next;
        for (i=0;i<n;i++)
        {
            matr[cc][tu->a-1]=1;
            tu=tu->next;            
        }
    }
}
void save_fail()
{
   char initialdir[MAX_PATH+1];
   getcwd(initialdir,MAX_PATH+1);
   memset(&sf,0,sizeof(sf));
   sf.lStructSize=sizeof(sf);
   sf.lpstrFilter=   "Текстовые файлы (*.txt)\0*.txt\0"
                            "Все файлы (*.*)\0*.*\0";
   sf.nFilterIndex=1;
   sprintf(customfilter,"Использованный фильтр");
   sf.lpstrCustomFilter=customfilter;
   sf.nMaxCustFilter=100;
   file_name[0]='\0';
   sf.lpstrFile=file_name;
   sf.nMaxFile=MAX_PATH+1;
   sf.lpstrInitialDir=initialdir;
   sf.lpstrTitle="Диалог сохранения файла";
if(GetSaveFileName(&sf)!=0)
    {
        FILE*f_out;
        f_out=fopen(sf.lpstrFile,"w");
        if(f_out!=NULL)
        {
            fprintf(f_out,"Элементы матрицы\n");
            for(int i=0;i<cep;i++)
            {fprintf(f_out," \n");
             for(int j=0;j<elem;j++)
             {
                 fprintf(f_out,"%d",matr[i][j]);
                 fprintf(f_out," ");
             }
            }
            fclose(f_out);
        }
    }
}
void vivod_din_sp()
{
    char *r=buff;
    int l=0, n;
    spisok *tu;
    tu=first;
    while(tu!=NULL)
    {
        l=sprintf(r,"%s %d %s %d\r\n","Цепь  ",tu->a,"      |Кол-во элементов ",tu->b);
        r+=l;
        n=tu->b;
        tu=tu->next;
        for (int i=0;i<n;i++)
        {
            l=sprintf(r,"%s %d %s %d\r\n","Элемент  ",tu->a,"|Контакт ",tu->b);
            tu=tu->next;
            r+=l;
        }
    }
}
 
 
void vivod_matr()
{
    char *r=buf;
    int l=0;
    for(int i=0;i<cep;i++)
        {
            for(int j=0;j<elem;j++)
                {
                    l=sprintf(r,"%4d",matr[i][j]);
                    r+=l;
                }
            r[0]='\r';
            r[1]='\n';
            r+=2;
        }   
}
void del()
{
    if(first!=NULL)
    {
        for(int i=0;i<cep;i++)
        {
            free(matr[i]);
        }
        free(matr);
    }
    if(first!=NULL)
    {
        spisok *pu=NULL;
        while (first!=NULL)
        {
            pu=first->next;
            delete first;
            first=pu;
        }
    }
}
int CALLBACK MyDlgProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp)
{
    const double pi=3.1415;
    int r=120;
    
    switch(msg)             
    {
        case WM_INITDIALOG:break;   
        case WM_COMMAND:        
            switch(LOWORD(wp))                                  
            {
                case IDC_Exit:
                        return EndDialog(hwnd,IDC_Exit);
                case IDC_Form:                          
                    {
                        if(first!=NULL)
                        {
                        form_matr();
                        vivod_matr();
                        SetWindowText(GetDlgItem(hwnd,IDC_Matr),buf);
                        }
                        else
                        MessageBox(hwnd,"Матрица не может быть сформирована(Список пуст)","Ошибка",MB_OK);
                        break;
                    }
                case IDC_Open:
                    {
                        del();
                        if(vvod_fail()==1) MessageBox(hwnd,"Фаил не существует","Ошибка",MB_OK);
                        break;
                    }
                case IDC_Graph:
                    {
                        f=1;
                        RECT rect;
                        rect.top=170;
                        rect.left=230;
                        rect.right=600;
                        rect.bottom=430;
                        InvalidateRect(hwnd,&rect,1);
                        break;
                    }
                case IDC_Out:
                    {
                        if(first!=NULL)
                        {
                        vivod_din_sp();
                        SetWindowText(GetDlgItem(hwnd,IDC_Spis),buff);
                        }
                        else MessageBox(hwnd,"Не загружены исходные данные","Ошибка",MB_OK);
                        break;
                    }
                case IDC_Save:save_fail();break;
                default:return 0;                           
            }
            break;
    case WM_PAINT:
        int *xe,*ye, *xc, *yc;
        int i;
        char str[10];
        HDC hdc;
        HPEN hpen,old_pen;
        HBRUSH hbrush,old_brush;
        PAINTSTRUCT ps;
            hdc=BeginPaint(hwnd,&ps);
            if((first!=NULL)&&(f==1))
            {
                xe=(int*)_alloca(elem*sizeof(int));
                ye=(int*)_alloca(elem*sizeof(int));
                xc=(int*)_alloca(cep*sizeof(int));
                yc=(int*)_alloca(cep*sizeof(int));
                SetBkMode(hdc,TRANSPARENT);
                hpen=CreatePen(PS_SOLID,1,RGB(0,0,255));
                hbrush=CreateSolidBrush(RGB(255,0,0));
 
                for(i=0;i<elem;i++)
                {
                    xe[i]=300+i*35;
                    ye[i]=250;
                }
                for(i=0;i<cep;i++)
                {
                    xc[i]=300+i*35;
                    yc[i]=350;
                }
                old_pen=(HPEN)SelectObject(hdc,hpen);
                old_brush=(HBRUSH)SelectObject(hdc,hbrush);
                for(int n=0;n<cep;n++)
                {
                    for(int m=0;m<elem;m++)
                    {
                        if(matr[n][m]>0)
                        {
                            MoveToEx(hdc,xc[n],yc[n],0);
                            LineTo(hdc,xe[m],ye[m]);
                        }
                    }
                }
                for(i=0;i<elem;i++)
                {
                    sprintf(str,"%d",i+1);
                    Ellipse(hdc,xe[i]-15,ye[i]-15,xe[i]+15,ye[i]+15);
                    TextOut(hdc,xe[i]-5,ye[i]-5,str,1) ;
                }
                for(i=0;i<cep;i++)
                {
                    sprintf(str,"%d",i+1);
                    Ellipse(hdc,xc[i]-15,yc[i]-15,xc[i]+15,yc[i]+15);
                    TextOut(hdc,xc[i]-5,yc[i]-5,str,1) ;
                }
                EndPaint(hwnd,&ps);
                DeleteObject(hpen);
                DeleteObject(hbrush);
            }
            break;
        default:return 0;
    }
    return 1;
}            
int WINAPI WinMain( HINSTANCE hInstance,      
                    HINSTANCE hPrevInstance,  
                    LPSTR lpCmdLine,          
                    int nCmdShow)
{
    DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG1),0,MyDlgProc);
    del();
}


Вернуться к обсуждению:
HEAP CORRUPTION DETECTED Visual C++
Вложения
Тип файла: txt 1.txt (118 байт, 34 просмотров)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2009, 15:49
Готовые ответы и решения:

HEAP CORRUPTION DETECTED
На строчке 36 с очисткой памяти постоянно вылетает ошибка дебага :( HEAP CORRUPTION DETECTED after Normal block (#202) at 0x000B6A58 ...

Heap corruption detected
Добрый день! Проблема вот в чём: когда выполнение кода доходит до 163 строки, появляется ошибка: &quot; HEAP CORRUPTION DETECTED: after...

Heap corruption detected
Возникает эта ошибка при выполнении функции Strings::Append (строка 81, в меню это пункт 3). Входные данные на всякий случай прикрепила....

8
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2009, 15:49
Помогаю со студенческими работами здесь

Heap Corruption Detected
Выдает ошибку HEAP CORRUPTION DETECTED, судя по всему где то ошиблась с распределением памяти Предполагаю, что ошибка прячется в районе...

Heap corruption detected
Ошибка возникает после отработки программы Заголовочный файл: #pragma once #include&lt;iostream&gt; #include&lt;valarray&gt; ...

HEAP CORRUPTION DETECTED
Собственно такую ошибку выдаёт: &quot;HEAP CORRUPTION DETECTED: after Normal block (#220) at 0x001970B8. CRT detected that the application...

HEAP CORRUPTION DETECTED
Не могу понять, почему выдает такую ошибку, когда я освобождаю память: &quot;HEAP CORRUPTION DETECTED: after Normal block&quot;. Я вроде нигде...

Heap Corruption detected (
что не правильно? запускаю и ошибка вылетает как на предидущей картинке template&lt;typename TT&gt; class Matrix { public:...

0
Новые блоги и статьи
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
Подробно о std::mdspan в C++23
stackOverflow 02.03.2025
Работа с многомерными массивами данных традиционно была одной из сложных задач в C++. Программистам приходилось создавать собственные абстракции или использовать сторонние библиотеки для эффективной. . .
Колмогоровская сложность в C++: Путь к совершенному коду
stackOverflow 02.03.2025
Абстрактная математическая теория Колмогорова стала мощным средством оценки и улучшения программного кода. Сложность алгоритма - не только в его вычислительной эффективности, но и в том, насколько. . .
Изменения в C# 14
stackOverflow 02.03.2025
Одно из самых значимых изменений в C# 14 - поддержка коллекционных выражений, которые позволяют создавать и инициализировать коллекции с помощью нового лаконичного синтаксиса. Это нововведение. . .
Разработка кроссплатформен­­­­ного мобильного приложения для iOS/Android на C++
bytestream 02.03.2025
C++ как язык программирования высокого уровня с прямым доступом к аппаратным ресурсам позволяет создавать приложения, работающие одинаково быстро как на iOS, так и на Android устройствах. Ни для кого. . .
Аутентификация/авторизация на Golang
bytestream 02.03.2025
Go предлагает множество возможностей для создания надежных систем аутентификации. Встроенные криптографические пакеты, высокая производительность и простота параллельной обработки запросов делают его. . .
Нововведения TypeScript 5.8
bytestream 02.03.2025
TypeScript 5. 8 приносит много возможностей и оптимизаций, которые существенно расширяют границы типобезопасного программирования на JavaScript. Эта версия включает ряд значительных улучшений в работе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru