|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
||||||
Мелкая и глубокая копии26.04.2015, 12:59. Показов 3916. Ответов 15
Метки нет (Все метки)
Подскажите пожалуйста, что я делаю не правильно? Почему деструктор вызывается чаще, чем нужно и как этого избежать? не советуйте мне векторы и прочее, все библиотеки, которые можно использовать приведены выше.
0
|
||||||
| 26.04.2015, 12:59 | |
|
Ответы с готовыми решениями:
15
Глубокая неопределённость
Глубокая сериализация объекта |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 26.04.2015, 13:18 | |||||||
|
типа посмотрите на мой г_о_в_н_о_к_о_д и сами догадайтесь? вы даже не потрудились выложить минимально компилирующийся пример. отсутствует часть необходимых типов данных, таких, как Person, или Car. кусок кода:
код не компилируется. и пока его нельзя скомпилировать, его нельзя нормально отлаживать. можно только визуально разглядывать. резюмируя: 1. учитесь грамотно задавать вопросы. 2. выкладывайте минимально необходимый объем кода, который иллюстрирует вашу проблему. 3. ваш код отчаянно нуждается в доработке напильником. в нем присутствует множество деффектов, обсуждать которые имеет смысл только тогда, когда на руках уже имеется какая никакая, но работоспособная модель.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
|
| 26.04.2015, 13:26 [ТС] | |
|
да, извините, просто я не могу скопировать в интернет целое решение на случай, если сюда случайно зайдет мой одногруппник и нагло скопирует мое решение. Могу я кому нибудь скинуть код в лс?
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||
| 26.04.2015, 13:29 | |||||||||||
|
так же у вектора отсутствует
0
|
|||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 26.04.2015, 13:32 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 26.04.2015, 13:35 | ||
|
однако фактически, доработанное местным населением решение уже не будет являться вашим. потому что при этом вы теряете монопольное авторское право на такой код. формально, это - опенсорс (что означает "с открытым исходным кодом"). Любой может взять себе на вооружение и допиливать, как ему вздумается. если хотите сохранить за собой права собственности - платите деньги, или делайте сами. в других случаях никто не обязан дорабатывать ваш код за вас, и не разглашать исходники.
1
|
||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
|
| 26.04.2015, 13:57 [ТС] | |
|
Вот, я сделал необходимый минимум.
по сути единственная проблема, которую пишет valgrind: ==13898== Address 0x5a1d1d0 is 0 bytes inside a block of size 40 free'd ==13898== at 0x4C2C2BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==13898== by 0x4010A2: CRegister::~CRegister() (cyber.cpp:313) ==13898== by 0x401870: main (cyber.cpp:428)
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 26.04.2015, 14:13 | |
|
я нашел ошибку.
при попытке сделать "глубокую копию" вектора, который параметризован указателями, вы получаете два разных вектора, которые хранят указатели на одни и те же данные. потом один из векторов помирает и зачищает указатели. потом помирает второй вектор, и пытается зачистить память которая уже была зачищена. что и является причиной вылета. лекарство: код в терминальной стадии тут либо тотальный рефактор, либо живительная эвтаназия.
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
||
| 26.04.2015, 14:24 [ТС] | ||
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 26.04.2015, 14:46 | ||
|
что его можно только выбросить и переписать все заново. вы совершили ряд технических ошибок, и как минимум две архитектурные ошибки: 1. понятие "глубокой копии" у вас не проработано. 2. механизм расшаривания данных размазан по всему коду, а должен быть реализован, как отдельный механизм. предлагаю вам остановится. и узнать что такое "смарт поинтеры" (ещё их называют "интеллектуальные указатели") https://vsukhachev.wordpress.c... %BB%D0%B8/ особое внимание уделить "std::shared_ptr" http://www.cplusplus.com/refer... hared_ptr/ после этого полностью переработать код.
0
|
||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
|
| 26.04.2015, 15:09 [ТС] | |
|
а можно как-то по-быстрому тут все преобразовать в глубокие копии. или тоже работать не будет?
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 26.04.2015, 15:26 | |
|
0
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 26.04.2015, 17:21 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
|
| 26.04.2015, 22:50 [ТС] | |
|
Я переделал, только без смарт поинтеров, не было времени вникать, через 2 часа сдать нужно, снова проблемы с delete, не могу понять почему.
0
|
|
|
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
|
|
| 26.04.2015, 23:50 | |
|
в методе bool CRegister::AddCar вы создаете объекты и потом распихиваете указатели на них в разные другие объекты (в вектора там, в машины и т.п.). и вот такие объекты при своем разрушении удаляют этот объект. и получается, что это делается несколько раз. код в таком виде ничего не спасет. то тут то там будет все глючить.
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 30
|
|
| 27.04.2015, 00:06 [ТС] | |
|
а так?
0
|
|
| 27.04.2015, 00:06 | |
|
Помогаю со студенческими работами здесь
16
Нужна глубокая проверка файла на вирусы Невиданный браузерный проект! Очень глубокая игра
Рекурсивный метод, глубокая ветка if/else или написание правильного метода с параметрами
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|