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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
#1

Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer" - C++

05.07.2014, 15:27. Просмотров 2168. Ответов 4
Метки нет (Все метки)

В конце программы выскакивает окно с ошибкой - "CRT detected that the application wrote to memory after end of heap buffer"
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
class Myclass
{
private:
    char* name;
public:
    Myclass() {   name = new char[];   }
    ~Myclass() {   delete [] name;    }
 
    friend ostream &operator << (ostream& os, Myclass& m) {
        os << m.name;
            return os;
    }
    friend istream &operator >> (istream& is, Myclass& m) {
        is >> m.name;
            return is;
    }
};
 
int main()
{
    Myclass workers[10];
 
    for(int i(0); i < 10; i++)
    {
        cout << i << " worker's name: "; cin >> workers[i];
    }
 
    for(int i(0); i < 10; i++)
    {
        cout << i << " worker's name: " << workers[i] << endl;
    }
При закомментировании деструктора с delete [] - все работает.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2014, 15:27     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer"
Посмотрите здесь:

C++ Ошибка "heap corruption detected"
CRT detected that the application wrote to memory before start of heap buffer C++
C++ ошибка Heap corruption detected
C++ Heap Corruption Detected в листинге 19.6 из книги "Освой с++ за 21 день"
Оператор "delete" и ошибка "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Error" C++
C++ CRT detected that the application wrote to memory after end of heap buffer
Ошибка: "Unhandled exception: Stack cookie instrumentation code detected a stack-based buffer overrun" C++
"Heap corruption detected" C++
C++ Ошибка: CRT detected that the application wrote to memory after end of heap buffer
Ошибка "*.exe вызвал срабатывание точки останова" и "HEAP CORRUPTION" при вызове деструктора программой C++
Найти причины возникновения ошибки "heap corruption detected after normal block #331" и исправить эту ошибку C++
C++ Crt detected that the application wrote to memory after end of heap buffer

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,945
Записей в блоге: 2
Завершенные тесты: 1
05.07.2014, 15:29     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer" #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
name = new char[];
сколько выделили?
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
05.07.2014, 18:28  [ТС]     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer" #3
Цитата Сообщение от Croessmah Посмотреть сообщение
сколько выделили?
Благодарю. Очень глупая ошибка...
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
05.07.2014, 19:40     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer" #4
C++
1
new char[];
Если это скомпилировалось, то 99.99%, что код написан под MS-компилятор.
Не понимаю, зачем они разрешили такую запись.
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
06.07.2014, 12:12  [ТС]     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer" #5
Цитата Сообщение от Tulosba Посмотреть сообщение
код написан под MS-компилятор
Вы правы.
Yandex
Объявления
06.07.2014, 12:12     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer"
Ответ Создать тему
Опции темы

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