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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
05.07.2014, 15:27     Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer" #1
В конце программы выскакивает окно с ошибкой - "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 день"
При вызове конструктора ошибка: L "Buffer is too small" & & 0 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 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
:)
Эксперт С++
4378 / 3221 / 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"
Ответ Создать тему
Опции темы

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