![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
cooper123 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
программа вылетает на строчке идущей за //error line
этот вариант работате но не правильно, указатель на указатель как то не правильно разадресовывается, причем не всегда, не стабильно. где искать ошибку не представляю подскажите пожалуйста
вот что выводится в файл
Это сообщение отредактировал(а) cooper123 - 21.6.2008, 14:18 |
||||
|
|||||
rrrFer |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.5.2008 Где: Красноярск Репутация: 0 Всего: 1 |
cooper123,
Вы бы сказали что должна делать программа? |
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
у меня есть данные организованные в список.
для их обработки я по определенным признакам выделяю элементы этого списка и организую снова в список. во второй список я запоминаю указатели на первый список, что бы потом иметь быстрый доступ к элементам первого списка из второго. тоесть итератором я прохожу по второму списку и хочу просматривать что там находится в этих специфических элементах первого списка. Ошибка возникает когда я из итератора второго списка выделяю указатель на элемент первого списка и пытаюсь прочитать данные ( итератор->итератор ->данные в этом метсе) при исполнении моей программы выдается ошибка Program received signal SIGSEGV, Segmentation fault. а в этом примере что я построил по подобию своей программы (для обозримости) вроде работает но не правильно и главное нестабильно то правильно то не правильно. надеюсь что может сейчас понятно. Это сообщение отредактировал(а) cooper123 - 22.6.2008, 22:31 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
где-то обращаетесь по невыделенной памяти.
что мешает взять gdb и найти где валитесь анализом крешдампа? -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
попробую.
только вот не понятно что это может дать. тоесть то что ссылка не так разадресовывается это и так понятно, а вот какие есть возможности это исправить я не представляю, кроме того как переходить обратно на си без всяких плюсов и темлатов (которые мне так понравились(((( |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
проблемы с указателями у С и С++ общие. Исправить поможет внимательность, аккуратность и желание. Если они не помогут то програмировать на С (С++) будет очень тяжело.. Для подобных случаев сушествует большой список других языков, не имееюших такого "недостатка" ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Ошибка в методе void pointer_list::create(t_list tl) - его параметр (список по которому заполняется объект) передается по значению, т.е. будет сделана копия списка, каковая и будет переданна параметром. Далее по этой копии организуется обход и итераторы, указывающие на эту ВРЕМЕННУЮ копию сохраняются внутри объекта. По выходу параметр разрушается и все итераторы становятся невалидными.
Надо поменять способ передачи параметра: void pointer_list::create(t_list & tl) |
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
Спасибо большое. помогло. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |