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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.91
pillllot07
2 / 2 / 1
Регистрация: 02.12.2010
Сообщений: 13
#1

HEAP CORRUPTION DETECTED - C++

27.02.2011, 17:17. Просмотров 7922. Ответов 3
Метки нет (Все метки)

Собственно такую ошибку выдаёт: "HEAP CORRUPTION DETECTED: after Normal block (#220) at 0x001970B8.
CRT detected that the application wrote to memory before start of heap buffer" хотя вроде массивы созданные мной в памяти я удаляю по окончании цикла (во всяком случае я так думаю И программа после запуска один раз проделывает всё о чём прошу, а второй раз уже отказывается. Вот кусок кода с этим циклом. Вопрос собственно: почему??? И как можно следить за памятью в Visual Studio 2010? Спасибо))
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
ptr = new int [20];// выделяем в динамической памяти место под наш массив и передаём адрес указателю без амперсанта т.к. массив и представляет собой адрес первого элемента
        ptrRed = new int [20]; //массив для остатков
        t=false;
        R=1;
        cout<<"\nGive me two numbers and I'll get you gsd(NOD)"<<endl; cout<< "(first number should be bigger the second one): \n";
        cin>>a>>b;
        t1=a; t2=b;
        cout<<endl;
        if(a>b)
        {
            
            while(R!=0)
            {
                
                r=R; // остаток передаём переменной r на тот случай если остаток R в следующем цикле будет равен 0, а нам надо будет вывести последний ненулевой остаток
                R=a%b; // новый остаток записываем переменную R
                quotient = a/b; // частное без остатка
                if(R!=0)
                {
                a=b;
                b=R;
                cout<<setw(15)<<"Redundance "<<count++<<" :"<<setw(8)<<a<<" "<<setw(15)<<"Quotient is: "<<setw(8)<<quotient<<endl;
                ptrRed[count-2]=R; //загоняем остаток с предидущего раза
                ptr[count-2]=quotient;//загоняем в массив частное
                }
                else
                {
                    cout<<b<<" is NOD";
                    t = true;
                }
            }
            
        }
        if(t!=true)
        cout<<r<<" is NOD";
        cout<<endl;
        for(int j=2; j<count-1;j++)
        {
        cout<<ptrRed[count-j]<<"="<<ptrRed[count-(j+2)]<<"-"<<ptrRed[count-(j+1)]<<"*"<<ptr[count-j]<<endl;
        //cout<<ptrRed[count-3]<<"="<<ptrRed[count-5]<<"-"<<ptrRed[count-4]<<"*"<<ptr[count-3]<<endl;
        }
        cout<<endl;
        Mult(ptr,ptrRed);
        delete []ptr;
        delete []ptrRed;
        count = 0;
        cout<<"Do you want more? (y/n): ";
        dir=getche();
        cout<<endl;
        
        
    }while(dir != 'n');
в аттаче скриншот ошибки
Миниатюры
HEAP CORRUPTION DETECTED  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2011, 17:17     HEAP CORRUPTION DETECTED
Посмотрите здесь:

heap corruption detected - C++
имеется класс CStr - строка, в нём есть конструктор CStr CStr::CStr(char *s) { length = 0; while (s) length++; str = new...

Heap corruption detected - C++
При попытке очистить память выдает &quot;Heap corruption detected&quot;. Помогите пожалуйста( // labanext.cpp : Defines the entry point for the...

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

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

Heap corruption detected - C++
Heap corruption на строке 93 при первом же выполнении цикла. Из-за чего? #include &lt;locale.h&gt; // для возможности вывода кириллицы ...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pillllot07
2 / 2 / 1
Регистрация: 02.12.2010
Сообщений: 13
27.02.2011, 17:34  [ТС]     HEAP CORRUPTION DETECTED #2
Нашёл ошибку) Действительно вылез за массив) Но как же можно следить за памятью?)
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.02.2011, 18:55     HEAP CORRUPTION DETECTED #3
pillllot07, Использовать std::vector, std::string, std::list (вообщем контейнеры).
Или написать свою обертку под массив с проверкой выхода за пределы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2011, 19:33     HEAP CORRUPTION DETECTED
Еще ссылки по теме:

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

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

ошибка Heap corruption detected - C++
Доброго времени суток! подскажите пожалуйста что я не так сделал. При запуске программы вылетает ошибка в строке 34 // d.cpp: главный...

Heap corruption detected after normal block - C++
выкидывает ошибку при попытке освободить память массива, делаю так: char **Items; ... free(Items);

HEAP CORRUPTION DETECTED - не понятно почему - C++
Помогите пожалуйста. Есть такой код: double e; char* w; /////// POINT 1 string q; size_t pos; string...

HEAP CORRUPTION DETECTED не могу найти ошибку - C++
код весь прорабатывает, но в конце выдаёт HEAP CORRUPTION через дебаг прогнал но так и не нашел ничего может вы подскажите на что...


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

Или воспользуйтесь поиском по форуму:
pillllot07
2 / 2 / 1
Регистрация: 02.12.2010
Сообщений: 13
27.02.2011, 19:33  [ТС]     HEAP CORRUPTION DETECTED #4
Спасибо)
Yandex
Объявления
27.02.2011, 19:33     HEAP CORRUPTION DETECTED
Ответ Создать тему
Опции темы

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