![]() |
|
Модераторы: bsa |
![]()
|
|
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если ptrCurrent == NULL, то тело while не выполняется..
посмотрел функцию LoadAutos - не нашел где выделяется память для указателя p P.S.
выделяй нужную часть и жми "быстрая цитата" )) |
||||
|
|||||
| SubZero |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Точно, исправил при объявлении:
Надеюсь так нормально? Программа вроде работает Теперь парадокс, связанный с использованием cout(). Если вместо
пишу
то программа вылетает с кучей ошибок. Тоже не могу понять в чем проблема, вроде бы все пишу правильно.. |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если тебе надо на чистом С, то там операции new нет если все же на "облегченном" C++, то тогда замени и malloc
не компилируется, или вылетает при исполнении ? если не компилится, то коды ошибок в студию.. Это сообщение отредактировал(а) mes - 4.6.2008, 17:02 |
|||
|
||||
| SubZero |
|
||||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
верно, забыл исправить) Заменил
на
Программа работает правильно. Теперь осталось избавиться только от cout() и программа будет уже на чистом С
Программа работает, но неправильно. Вместо
она печатает на экране кучу ерунды и выводит в итоге в файл много мусора
Вместо этого в файл должно выводиться
Вот такая вот ерунда.. Это сообщение отредактировал(а) SubZero - 5.6.2008, 09:16 |
||||||||||||||
|
|||||||||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| SubZero |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Нет, дело явно не в этом. Ведь я беру простейший случай (1 элемент в списке), тогда срабатывает
то есть ptrLast->next == NULL. К тому же эта ошибка появляется только при замене cout() на printf() .. Мистика какая-то |
||||
|
|||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
глянул код :
более того , одинаковый код повторяется в разных функциях, поэтому для начала выдели весь код со списком в отдельные функции Это сообщение отредактировал(а) mes - 5.6.2008, 10:07 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
кстати, а под указатели структуры
struct car { char *mark; char *colour; char *number; } память выделяется? |
|||
|
||||
| SubZero |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Действительно, было совсем не то написано. Даже не помню, почему я так написал в начале. Исправленный вариант:
Да, выделяю. Приведу текст всей программы, чтобы было точно ясно. Посмотри, пожалуйста, чувствую, там есть еще не одна ошибка
Это сообщение отредактировал(а) SubZero - 5.6.2008, 10:24 |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
тут присваевается содержимое по указателю p, но не надо забывать что там хранятся указатели (char *mark; char *colour; char *number;) и происходит просто присвоение этих указателей, а не копирование содержимого той памяти. т.е. в результате все записи списка указывают на одну и ту же память ( avto *p=(avto *)malloc(sizeof(avto));) п.с. зря не прислушиваешься к совету : сразу станет видно что к чему |
|||
|
||||
| SubZero |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
А как сделать правильно?
Я не против, но хотелось бы обойтись без этого)) |
||||
|
|||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
если не против (будем считать что после запятой ничего не написано) тогда для начала создай структуру
и функции
тогда добавление нового элемента будет выглядить так
Это сообщение отредактировал(а) mes - 5.6.2008, 12:01 |
||||||
|
|||||||
| SubZero |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Хорошо, после обеда начну трудиться над этими функциями Хотя жутко леееень Но я буду стараться! |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
а нам наверно жуть как охота лазять в дебрях запутанного кода?? p.s. я свой предыдуший пост подправил.. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |