9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35
|
||||||
1 | ||||||
Повреждена куча при работе с динам. памятью. Почему? Как исправить?07.12.2011, 10:08. Показов 6359. Ответов 6
Метки нет (Все метки)
Приветствую всех!
Такая проблема: Вот есть код. В нем периодически появляются ошибки, а иногда и не появляется, и все хорошо работает. Я так и не понял системы - ошибки иногда вылетают если менять размер инициализирующих бинарных строк в main, если использовать перегруженный оператор "=". Но иногда все работает нормально. Т.е. ошибки какие-то плавающие, иногда появляются иногда нет. Пробовал выполнять построчно (нажав F11) - он останавливается в Cstring::Cstring(char *strInit) на строчке STRpointer = new char [length]; с таким сообщением Помогите пожалуйста разобраться, что за напасть.
0
|
07.12.2011, 10:08 | |
Ответы с готовыми решениями:
6
Куча была повреждена. При выделении памяти Ошибка при выполнении программы: Куча была повреждена Почему выдает ошибку при работе с большим файлом, напишите как исправить ? Повреждена куча |
Заблокирован
|
|
07.12.2011, 10:17 | 2 |
разные Формы new и delete, strcpy работает только с c-строками, а утебя не каждый конструктор создаёт нультерминирующую строку и вобще это не должно было скомпилироваться:
Сообщение от [Федя
1
|
9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35
|
|
07.12.2011, 10:19 [ТС] | 3 |
GetLen - это моя функция, она после main написана, она возвращает int...
Не могли бы вы подсказать подробнее про new и delete? Как правильно надо? Т.е. там несоответствие когда мы инициализируем символом или не инициализируем вообще? Можно ли тогда вообще удалить деструктор? Программа все там правильно будет из памяти удалять?
0
|
07.12.2011, 10:27 | 4 |
[Федя], судя по сообщению ты пытаешся залезть внутрь оператора new, для которого нет исходного кода. Когда трассируешь посмотри там есть клавиши "шаг с заходом" и "шаг с обходом" (или типа того), вот тебе нужно "шаг с обходом", т.е. не нужно пытаться зайти в new.
1
|
Заблокирован
|
|
07.12.2011, 10:28 | 5 |
а пфф... только щас посмотрел твоё сообщение, это не ошибка, просто нет исходного текста для new, но можно дизассемблировать, жми не step into а step over зачем тебе в new лезть
Добавлено через 1 минуту
Сообщение от [Федя
Сообщение от [Федя
1
|
9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35
|
|
07.12.2011, 10:58 [ТС] | 6 |
LosAngeles, не совсем понял Вас, что куда добавить?
0
|
Заблокирован
|
|
07.12.2011, 13:50 | 7 |
STRpointer = new char[1];
1
|
07.12.2011, 13:50 | |
07.12.2011, 13:50 | |
Помогаю со студенческими работами здесь
7
Куча была повреждена и прочие радости Необработанное исключение: куча была повреждена Куча была повреждена, работа с указателями Ошибки доступа или куча повреждена Как стек и куча связаны с переменными динамической и статической памятью Unhandled exception at 0x772EE9A3 (ntdll.dll) (Куча была повреждена) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |