|
1 / 1 / 0
Регистрация: 08.05.2009
Сообщений: 16
|
|||||||||||
После компиляции VS2008 падает после удаления узла дерева, имеющего потомка24.05.2009, 17:16. Показов 5905. Ответов 36
Метки нет (Все метки)
Вот код на Си:
в борладне все работает. Под *nix системами после компиляции gcc и в win после компиляции VS2008 падает после удаления узла дерева, имеющего потомка. Не могу разобраться почему, вроде все корректно выделяю, да и free передаю тот же адрес, что выделил мне malloc. Помогите разобраться, пожалуйста. Выделю место, где программа падает, на всякий:
0
|
|||||||||||
| 24.05.2009, 17:16 | |
|
Ответы с готовыми решениями:
36
Удаление узла имеющего одного потомка
После удаления Avast'а система не запускается, падает в BSOD |
|
|
||
| 24.05.2009, 19:16 | ||
|
1
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 24.05.2009, 19:17 | |
|
Потому что вызывается функция. У функции адрес не меняется. Меняется только у указателя. А вот самой функции передается порченый указатель.
1
|
|
|
|
|||||||||||
| 24.05.2009, 19:23 | |||||||||||
Сообщение было отмечено Памирыч как решение
Решение
Да, главное тут не пояснил. Тип нам нужен только для того, чтобы выяснить, которую функцию нам дёргать - Class_A_func, а не какую-нибудь Class_BBB_func или Class_CCC_trampampam. Т.е. объект/экземпляр класса при вызове метода пишется для того, чтобы компилятор знал, с методом какого класса мы работаем и чтобы передал указатель на экземпляр данного класса
2
|
|||||||||||
|
инженер-системотехник
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
|
|
| 24.05.2009, 19:23 | |
|
Спасибо за исчерпывающее объяснение
0
|
|
|
1 / 1 / 0
Регистрация: 08.05.2009
Сообщений: 16
|
||
| 24.05.2009, 20:48 [ТС] | ||
|
Evg, служебные метки не переписываются. Vourhey, я же говорил, что компилил и на gcc. Специально для тебя попробовал обратиться к cTemp прямо перед вызовом free, и, о чудо!!!, все работает, но вот на следующем шаге при вызове free программа падает. Кстати, повторное освобождение памяти борланд не отловит, а освободит область памяти еще раз. Возможно поэтому этот код выполняется на нем безупречно, все добавляется и корректно освобождается. Но все же очень странно то, что перед free я обращаюсь к этому объекту и не получаю ошибки. Да и по методу Evg, эта область памяти ранее не освобождается.
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 24.05.2009, 21:12 | |
|
А текст ошибки напиши сюда, плз.
0
|
|
|
1 / 1 / 0
Регистрация: 08.05.2009
Сообщений: 16
|
|
| 24.05.2009, 21:37 [ТС] | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 08.05.2009
Сообщений: 16
|
||||||
| 25.05.2009, 01:01 [ТС] | ||||||
|
вот исходник:
нажимаем 2, потом вводим "1 1", жмем 2, вводим "1 2", жмем 2, вводим "2 3", жмем 1, жмем 3, вводим 2 или дерево: 1->2->3 (удаляем элемент 2)
0
|
||||||
|
1 / 1 / 0
Регистрация: 08.05.2009
Сообщений: 16
|
|||||||||||
| 25.05.2009, 20:00 [ТС] | |||||||||||
|
хехехе, нашел ошибку!!!! =)
в строке 81
![]() Всем огромное спасибо за проявленный интерес и желание помочь. P.S.: версия gcc 4.3.2; libc 2.9
0
|
|||||||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||
| 26.05.2009, 04:51 | |||||||
0
|
|||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 26.05.2009, 10:36 | |
|
Ну, он запутался как раз вследствие того, что оно такое... хаотичное (сложно читать функции для него, это же на всё влияет)
0
|
|
|
|
|||
| 26.05.2009, 10:38 | |||
|
0
|
|||
| 26.05.2009, 10:38 | |
|
Ошибка компиляции после удаления файла в проекте в NetBeans C++ Алгоритм удаления узла из бинарного дерева Удаления узла из бинарного дерева поиска Вершина бинарного дерева: Как на рисунке будут выглядеть деревья до и после удаления? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|