Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Tahir Гость
|
Добавлено: Пт Фев 07 2003 19:40 Заголовок сообщения: Не удаляется массив из кучи |
|
|
Объявил указатель на массив: float* Ptr = new float[10];
При написании: delete[] Ptr;
выскакивает ошибка. В чем дело? |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 10:40 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Если всё так, как ты описал, то в компиляторе.
(а если ошибка выскакивает _при_написании_ - то в редакторе ) |
|
Вернуться к началу |
|
|
Tahir Гость
|
Добавлено: Пн Фев 10 2003 10:43 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Nu i gde mozhet bitj v kompiljatore o6ibka?? |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 11:39 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Ну какой компилятор ты используешь? |
|
Вернуться к началу |
|
|
Tahir Гость
|
Добавлено: Пн Фев 10 2003 11:41 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
VC++, kakoj eshe?! |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 12:15 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Оне ваще-то бывают разные.
Если VC++, то отошли bug-report в MS
Говоря серьезно, единственной причиной ошибки (если отбросить версии об особенной кривизне компилятора и стандартных либ) может быть то, что память удаляется повторно. |
|
Вернуться к началу |
|
|
Tahir Гость
|
Добавлено: Пн Фев 10 2003 12:18 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Mda... delo v tom, 4to sna4ala idet sozdanie ukazatelja float* Ptr = new float[10], potom vizov ku4i funkcij (v kotorih net delete[]), posle etogo pishu delete[] Ptr - i "Cannot read from ....". |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 12:38 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Могла какая-нибудь из этих функций изменить Ptr? Он всегда передавался по значению? |
|
Вернуться к началу |
|
|
Tahir Гость
|
Добавлено: Пн Фев 10 2003 12:39 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
Mogla... i 4to? |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Фев 10 2003 12:56 Заголовок сообщения: Re: Не удаляется массив из кучи |
|
|
И все - кранты. Вместо выделенной памяти удаляется черт знает что. |
|
Вернуться к началу |
|
|
Tahir Гость
|
Добавлено: Пн Фев 10 2003 12:59 Заголовок сообщения: Ответ на: "Re: Не удаляется массив из куч..- ugz- 10-02-2003 12:56" Re: Не удаляется массив из ку |
|
|
Mda. Ok. Togda problemu postavim po-drugomu. Estj programmka na VC++. Zapuskaem ee cikli4eski, na 10-m prohode vilezaet o6ibka o nepro4tenii. Dumal, 4to pamajtj zasorjaetsja iz-za togo,4to ne primenil delete[]. 4to delatj? |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Фев 10 2003 13:20 Заголовок сообщения: Попробуй if (Ptr != NULL) delete[] Ptr;, хотя это не панацея (+) |
|
|
Вероятно, в каком-то месте программы у Ptr изменяется значение. Ищи переприсваивание Ptr или ссылки на Ptr. |
|
Вернуться к началу |
|
|
Tahir Гость
|
Добавлено: Пн Фев 10 2003 13:22 Заголовок сообщения: Re: Попробуй if (Ptr != NULL) delete[] Ptr;, хотя это не панацея (+) |
|
|
Ok, sapsibo vsem za pomoshj! |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Вт Фев 11 2003 18:56 Заголовок сообщения: Да, это не поможет :( |
|
|
Как раз с нулевым указателем delete ?должен? отрабатывать правильно - не делать ничего.
P.S. "!= NULL" - имхо излишне. |
|
Вернуться к началу |
|
|
|