|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
||||||
ООП. Возникает ошибка с динамической памятью11.04.2023, 00:36. Показов 2875. Ответов 49
/*Доброй ночи! Возникает ошибка с памятью в деструкторе класса Person (для двух других классов все срабатывает хорошо). Такое ощущение, что уже происходило освобождение памяти для переменных класса Person (FIO и Birthday), и она пытается освободить память по старому адресу, которого уже нет. */
0
|
||||||
| 11.04.2023, 00:36 | |
|
Ответы с готовыми решениями:
49
Ошибка с динамической памятью
Ошибка в коде при работе с динамической памятью |
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 11.04.2023, 11:48 | ||
|
0
|
||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
||
| 11.04.2023, 11:49 [ТС] | ||
|
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 11.04.2023, 11:58 | |||
|
Если "Принципы и практика", то в самый раз, но в паре с другой книгой, например Прата или Липпмана. Эти книги не взаимозаменяемые, "Принципы и практика" Страуструпа учат "как", а Липпман и Прата "что". Добавлено через 6 минут Такой принцип, знаете? Это вот самый примитивный пример этого принципа.
1
|
|||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
||
| 11.04.2023, 12:05 [ТС] | ||
|
Но... из вашего того кода я мало, что понял... Буду разбираться сначала с ошибками изначального кода, на которые вы указали. Спасибо!
0
|
||
|
Заблокирован
|
||||||||
| 11.04.2023, 15:01 | ||||||||
![]() Вчера написал для Person. Код написан что бы работал, ни на что не претендует, ничего сложного не использовал. С небольшим тестом работоспособности.
Добавлено через 42 секунды Впрочем как и все остальное, с таким подходом.
0
|
||||||||
|
Модератор
|
||
| 11.04.2023, 16:55 | ||
|
К тому же, выбирая ресурс, на который Вы опираетесь в обучении, имеет смысл задуматься о качестве материала, подачи, компетенции автора и тому подобных вещах. Обычный мамкин ютубер - это просто чел с улицы, который вчера купил себе вебку и посмотрел пару туториалов, как снимать видосы для ютуба. В то время как книга - это целая индустрия - там и компетенция автора, и ревьюеры, редакторы, которые вычитывают книгу, издательство и так далее. А особенно, когда книга от именитого автора, которая выдержала ни одно издание. Тут сразу ясно, что и глубина познаний автора заслуживают доверия, и качество материала, и так далее. Поэтому, на мой взгляд, лучший способ учиться для начинающего - читать книги, выполнять упражнения из них. Когда поднатореете, хороший вариант - помогать новичками на форуме, читать/писать код. Когда почувствуете себя ещё более уверенно, начинайте контрибьютить в open-source проекты. В качестве итоговой проверки своих навыков попробуйте свои силы в реальной ай-ти компании в качестве разработчика.
0
|
||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
||||||
| 12.04.2023, 00:53 [ТС] | ||||||
|
Добавлено через 38 секунд Добавлено через 4 минуты Начал читать Страуструпа, позже мельком просмотрел Герба Сеттера - Стандарты программирования (показалась даже интереснее, особенно оглавление - напр. "Почему стоит часто употреблять const" или почему стоит избегать макросов. Спасибо! Добавлено через 7 минут Добавлено через 7 минут Теоретически, она же могла не выделиться, и тогда смысл в дальнейших действиях? Или тоже бесполезная проверка?
0
|
||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||||
| 12.04.2023, 00:55 | ||||
|
А инициализация будет в том порядке, в котором указаны поля, независимо от того, как вы их написали в списке инициализации. Поэтому ваш код содержит ошибку из-за того, что вы надеетесь на то, что прядок будет иным. Добавлено через 1 минуту
0
|
||||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
|||
| 12.04.2023, 00:59 [ТС] | |||
|
Добавлено через 3 минуты А, т.е. если память в каком-то случае не выделилась, я поймаю исключение и без проверок? Понял
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 12.04.2023, 01:04 | |||
|
Добавлено через 2 минуты
0
|
|||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
||
| 12.04.2023, 01:12 [ТС] | ||
|
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 12.04.2023, 01:15 | |
|
0
|
|
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
|||
| 12.04.2023, 01:17 [ТС] | |||
|
Не понимаю, но верю вам. Я не удивлюсь, если мы этот RAII и не будем проходить. Нам сказали, что осталось 4 мес. обучения С++. А проучились полгода, и вот уровень. И я далеко не худший студент ) Добавлено через 1 минуту
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 12.04.2023, 01:21 | ||
![]() Добавлено через 36 секунд У меня же там в коде все написано. Посмотрите еще раз.
0
|
||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
|||
| 12.04.2023, 01:33 [ТС] | |||
|
А почему оператор перемещения мой приводит к утечке памяти? Добавлено через 5 минут
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||
| 12.04.2023, 01:37 | |||||
*this и an, вместо этого принудительно задает null для состояния an.Если у вас в *this уже была выделена какая-то память, то вы указатели на нее перезапишете значениями из an, а в an оставите null`ы. Т.к. указатели вы перетерли, то освободить эту память теперь никак нельзя = утечка. Если бы вы сделали обмен местами, как я показывал, или другим способом, то памятью, которая у вас была в *this, стал бы заведовать объект an, что избавило бы вас от утечки.Добавлено через 1 минуту
0
|
|||||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
||||||
| 12.04.2023, 01:49 [ТС] | ||||||
|
Ну то есть вторая вроде понятно, мы в операторе меняем значения переменных нашего класса на значения переменных экземпляра класса, который передается параметром. А первая не понятно. Сначала вызывается конструктор копирования а потом меняются значения? Добавлено через 1 минуту Добавлено через 2 минуты Может быть из-за этого и был весь сыр бор. Сейчас попробую, как вы сказали и вуаля Добавлено через 4 минуты Ну да, тут получается даже проверка (if (!human)) не к месту, толку от нее. Кажется начинаю понимать
0
|
||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||
| 12.04.2023, 01:54 | |||||
|
Добавлено через 2 минуты Вот это место:
0
|
|||||
|
18 / 1 / 0
Регистрация: 30.03.2023
Сообщений: 29
|
|||
| 12.04.2023, 01:58 [ТС] | |||
|
Хотелось бы по поводу этого еще задать вопрос, последний сегодня ) А в чем отличие вашего от моего? Полагаю тоже, не меняются значение и может утечка произойти? Добавлено через 2 минуты
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 12.04.2023, 02:01 | |
|
Prang, по сути - ничем. этот конструктор у вас был правильный, но я просто привёл к единому стилю.
0
|
|
| 12.04.2023, 02:01 | |
|
Помогаю со студенческими работами здесь
40
Работа с динамической памятью через указатели. Загадочная ошибка. Работа с динамической памятью через указатели. Загадочная ошибка. После выполнения программы, работающей с динамической памятью, вылетает ошибка Работа с динамической памятью. Ошибка в функции getline через посимвольный ввод Ошибка при работе с динамической памятью - 'Invalid pointer operatoion' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
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 с разными данными.
|