информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] почему вылетает еррор када я хочу удалить память? 29.10.01 21:20  Число просмотров: 975
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
забивать уж точно не надо

у тебя где то глюк в проге
где то пишешь не туда куда нужно
<programming>
[C++] почему вылетает еррор када я хочу удалить память? 29.10.01 20:43  
Автор: Лamo Статус: Незарегистрированный пользователь
<"чистая" ссылка>
есть структура,
я выделяю ей память
например:

struct s
{
char sz[0x100];
};

s * ptr = new s[10];

Потом удаляю:
delete [] ptr;

Иногда всё нормально,
иногда VC выдаёт вот что:
"DAMAGE: after Normal block (#20) at 0x00990EB0"
Как мне удалять выделенную память??
или забить на неё???
[C++] Стыдно, батенька, стыдно 30.10.01 12:29  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Я на все сто уверен, что ты привел не весь код, а только место, где у тебя все падает. Так вот - это банальный съезд по памяти. Где-то выше ты по ней проехался и теперь на ЛЮБОЙ корректной операции у тебя может вылезти "ошибка".

> есть структура,
> я выделяю ей память
> например:
>
> struct s
> {
> char sz[0x100];
> };
>
> s * ptr = new s[10];
>
> Потом удаляю:
> delete [] ptr;
>
> Иногда всё нормально,
> иногда VC выдаёт вот что:
> "DAMAGE: after Normal block (#20) at 0x00990EB0"
> Как мне удалять выделенную память??
> или забить на неё???
[C++] Стыдно, батенька, стыдно 19.11.01 13:51  
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я на все сто уверен, что ты привел не весь код, а только
> место, где у тебя все падает. Так вот - это банальный съезд
> по памяти. Где-то выше ты по ней проехался и теперь на
> ЛЮБОЙ корректной операции у тебя может вылезти "ошибка".
Че-то я не понял - объясни еще раз плэ. как это проехался и куда это съехал -
ты имеешь в виду записал куда то за границы что-ли?
Ух, какое старье подняли :))) 19.11.01 13:59  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> Че-то я не понял - объясни еще раз плэ. как это проехался и
> куда это съехал -
> ты имеешь в виду записал куда то за границы что-ли?

Именно, записал не по тем адресам (только не надо говорить, что это не возможно !). В некоторых ситуациях это приводит к тому, что программа начинает вести себя некорректно в совершенно неожиданых местах.
Кстати, для справки: аналогичные ситуации (неправильная работа, при правильном коде) могут возникать из-за неправильной линковки.
[C++] почему вылетает еррор када я хочу удалить память? 30.10.01 09:05  
Автор: IgorR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> есть структура,
> я выделяю ей память
> например:
>
> struct s
> {
> char sz[0x100];
> };
>
> s * ptr = new s[10];
>
> Потом удаляю:
> delete [] ptr;
>
> Иногда всё нормально,
> иногда VC выдаёт вот что:
> "DAMAGE: after Normal block (#20) at 0x00990EB0"
> Как мне удалять выделенную память??
> или забить на неё???

Забивать нельзя. Приведенный код абсолютно корректен. Может глюк в программе в целом. Попробуй ввести деструктор, и посмотри, вызывается ли он 10 раз.
[C++] почему вылетает еррор када я хочу удалить память? 30.10.01 07:19  
Автор: u3oTon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
s * ptr = new s*[10]; если это массив из 10 указателей.(не проверено)
[C++] почему вылетает еррор када я хочу удалить память? 30.10.01 07:40  
Автор: u3oTon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Sorry !!! s * ptr[10] = new s; если это массив из 10 указателей.(не
проверено)
[C++] почему вылетает еррор када я хочу удалить память? 29.10.01 21:20  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
забивать уж точно не надо

у тебя где то глюк в проге
где то пишешь не туда куда нужно
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach