![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| MaxWave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
Никак не пойму, что я делаю не правильно? При удалении tempList ошибка о повреждениии памяти:
|
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
Попробуй вместо этого
Поставить вот это:
|
||||
|
|||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
у тебя точки с запятыми на каждом шагу, а нужно после определения класса.
здесь ты присвоил один (нулевой) указатель другому? а потом mList после new указывает на другой участок памяти; в любом случае код неполный
в общем нужно разобраться в том что ты хочешь делать и почитать подходящую литературу. -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| NextAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.8.2005 Где: Украина, г. Одесс а Репутация: 2 Всего: 3 |
думаю так должно заработать - ты пытался освободить еще не выделенную память. При первом вызове метода Add у тебя не выделена память ни под один из массивов и оба указателя (tempList и mlist) равны NULL. а вообще, насколько я понял, ты пытаешься сварганить нечто вроде динамического массива, который уже и без того реализован в stl и называется vector Это сообщение отредактировал(а) NextAlex - 28.7.2006, 19:56 --------------------
Говорила мама: "Учись играть на скрипке". Не хотел носить ноты - будешь носить пианино ... |
|||
|
||||
| Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
Не имеет значения. По стандарту delete допускает передачу нулевого указателя |
|||
|
||||
| MaxWave |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
Всем спасибо за ответы!
2vinter Это динамические массивы указателей (ДМУ), поэтому так и должно быть 2NextAlex Про вектора, списки я заню в STL, но мне надо было реализовать это вручную (задание такое) Спасибо за исправленный код, все дело было в
а надо было
выход за пределы массива. Да, подучиться мне стоит. Проблема в том, что я опускаю "законы" программирования, корректность. Надо искоренить из сознания - если код работает, не значит, чо он корректный. Если где нибудь такая лит-ра, где акцекнтированио на этом внимание - описаны нормы написания кода? (т.е. так лучше не делать, а здесь лучше так). Срочно надо повышать свой уровень, иначе мне ничего не свтит |
||||
|
|||||
| DukeCpp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 27.2.2006 Где: St.Petersburg Репутация: нет Всего: 1 |
Книжка попроще: С. Уэллин "Как не надо программировать на С++" (111 нерабочих и 3 рабочих программы или почему 2+2 = 5986). Довольно занятное, лёгкое чтение.
Посерьёзнее и, конечно, классика жанра: Саттер Г., Александреску А. Стандарты програмирования на С++: 101 правило и рекомендация. Хорошая, глубокая книга, небольшая по объёму, но ёмкая по информации. Ну и, конечно, Мейерс: Effective C++, More Effective C++. Без комментариев, просто must have and been read |
|||
|
||||
| NextAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.8.2005 Где: Украина, г. Одесс а Репутация: 2 Всего: 3 |
по стандарту возможно и допускает, но на практике это почти всегда вызывает ошибку в работе программы - сам наступал на эти грабли. --------------------
Говорила мама: "Учись играть на скрипке". Не хотел носить ноты - будешь носить пианино ... |
|||
|
||||
| MaxWave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
2DukeCpp
Огромное спасибо за список литературы! |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| NextAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.8.2005 Где: Украина, г. Одесс а Репутация: 2 Всего: 3 |
Daevaorn, ну если GCC теперь считается мамонтоподобным ... может тогда Linux - это тоже что-то совершенно несуразное ?
--------------------
Говорила мама: "Учись играть на скрипке". Не хотел носить ноты - будешь носить пианино ... |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
NextAlex, давай код и версию gcc!
delete( 0 ) абсолютно легален. |
|||
|
||||
| NextAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.8.2005 Где: Украина, г. Одесс а Репутация: 2 Всего: 3 |
Daevaorn, ты знаешь, я начал писать пример и понял что был неправ, "delete NULL" ошибку не вызывает - ошибка появляется если указатель не проинициализирован, что в принципе логично ...
так что приношу свои извинения --------------------
Говорила мама: "Учись играть на скрипке". Не хотел носить ноты - будешь носить пианино ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |