|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.03.2012, 14:22 | #1 |
Регистрация: 18.03.2012
Сообщений: 7
|
Конкретная ошибка конпелятора (С++)
Здравствуйте. Столкнулся с необъяснимым поведением программы: если закоментировать 33 строку в main.cpp, то программа работает нормально, если раскоментировать, то падает.
Но дело в том, что вызываемая там функция ничего не изменяет. В архиве прилагаю код и экзешник(160 строк). Компилятор MinGW, система Win7-x64. Я не прошу писать за меня код, но пожалуйста, если вы разбираетесь в вопросе, то посмотрите и подскажите где там у меня ошибка. P.S. Я в курсе что дважды создавать здесь темы нельзя, но я неправильно выбрал раздел. Приношу свои извинения и прошу удалить первую тему. |
18.03.2012, 14:30 | #2 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 87
|
Выложите тексты кодов, а не архив, используя тэги оформления .
Помог - жми весы
|
18.03.2012, 14:32 | #3 |
Регистрация: 18.03.2012
Сообщений: 7
|
Код с некоторым подобием комментариев.
main.cpp Код:
Код:
Последний раз редактировалось Agmentium78; 18.03.2012 в 16:40. |
18.03.2012, 15:35 | #4 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 87
|
Моё мнение - у тебя вообще ни один конструктор не работает так, как положено. А теперь скажи, пожалуйста, зачем тебе
Код:
Код:
Помог - жми весы
|
18.03.2012, 15:48 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
почему в realloc неверно записан вызов delete?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.03.2012, 16:34 | #6 | ||
Регистрация: 18.03.2012
Сообщений: 7
|
Цитата:
init() должен обнулить переменные члены перед их использованием, в отдельную функцию вынес для наглядности. char* tmp - ну можно и без него впринципе, поправлю. Цитата:
Кстати! Если закоментировать этот оператор, программа не вылетает. Может быть я что-то не так сделал с конструктором копии и память освобождается дважды? Спс всем кто отписал. |
||
18.03.2012, 16:39 | #7 |
Регистрация: 18.03.2012
Сообщений: 7
|
Вот что я еще нашёл.
Такой вариант функции main() отрабатывает Код:
Я похоже очень жестко накосячил, вот только неясно где. |
18.03.2012, 16:42 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
проверьте, точно ли вызываеться конструктор копии.(вставьте в него
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.03.2012, 16:50 | #9 |
Регистрация: 18.03.2012
Сообщений: 7
|
Вызывается.
Никто не пробовал компилировать? Может это только у меня такая проблема? Посмотрите кто может. ____________ Если посмотреть вывод с отладкой, то вот такая функция main() Код:
Код:
|
18.03.2012, 17:51 | #10 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Agmentium78
Все ошибки в программе связаны с незнанием базовых вещей C++ и неумелом обращении с динамическими данными. повсеместно используется char* вместо const char* (хотя само по себе использование новичком указателей в C++, как правило, уже означает что код можно в помойку) tmp = realloc(0); tmp[0] = '\0'; выделяешь память размером в 0 байт и тут же пишешь в несуществующую область отсутствует пере-определенный конструктор копирования, оператор присваивания, что является обязательным при наличии в классе raw указателей. дальше смотреть не обязательно, и так все понятно... ошибки такого рода возникают от незнания теории, поэтому лучший способ избежать их - усесться за учебники
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DBGrid конкретная ячейка | Niklan | БД в Delphi | 6 | 24.01.2013 07:31 |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Ошибка run-time Error 1004 общая ошибка ODBC | kaval88 | Microsoft Office Excel | 0 | 27.02.2011 20:20 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |
Это ошибка Delphi или моя ошибка??? | bloodeagle | Общие вопросы Delphi | 3 | 12.11.2009 15:26 |