![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
delias |
|
||||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
ошибка там где пытаюсь удалять массив
прошу помочь. вроде бы правильно удаляю, но не могу никак скомпилировать без ошибок. вот код всей программы:
|
||||
|
|||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
Вот ошибки:
Функцию можно написать проще:
Это сообщение отредактировал(а) 586 - 9.12.2009, 15:42 |
|||
|
||||
delias |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
точно, спасибо за совет str = strcopy;
а вот по поводу ошибок - дело не в них. вот, немного исправил, рабочий вариант:
если закомментирвать все операции с удалением массивов и деструктор - то работает безупречно дело в удалении - что делаю не так? Это сообщение отредактировал(а) delias - 9.12.2009, 16:04 |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
||||
|
||||
delias |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
прощу прощения за оффтоп, как код подсвечивать? обычные тэги не работают
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
delias, работает тег [b] внутри комментариев. Если нужно выделять код, то оформляй его не с помощью тега [code], а с помощью [quote]. В этом случае, пропадет подсветка синтаксиса, правда...
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
void CStrings::Add (char *s) - не проверяет сколько элементов влазит в контейнер. Если добавить 1 лишний элемент, то он затрет специальную сигнатуру, которая расположена сразу за концом блока памяти выделенного в new. Перед выполнением delete происходит проверка этой сигнатуры. Если сигнатура не верна, дальнейшее выполнение программы невозможно, так как потенциально может привести к потере данных и к неопределенному поведению. Недопустимость такого поведения это одно из важнейших преимуществ C# по отношению к С++.
Если это не узкое место в программе, то я бы посоветовал использовать конструкцию std::vector<std::string>, как более безопасную. Это сообщение отредактировал(а) Alexeis - 10.12.2009, 11:40 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |