37 / 32 / 10
Регистрация: 31.08.2016
Сообщений: 327
|
||||||
1 | ||||||
Динамическая память new и delete09.01.2019, 15:38. Просмотров 610. Ответов 6
Метки нет Все метки)
(
имеем след. ситуацию:
0
|
|
09.01.2019, 15:38 | |
Динамическая память new, delete Указатели и динамическая память new delete Когда высвобождается динамическая память без delete
|
|
112 / 91 / 31
Регистрация: 24.10.2018
Сообщений: 336
|
|
09.01.2019, 15:57 | 2 |
Не только смысла нет, но и неправильно, так как поведение не определено, два раза пытаешься освободить один и тот же блок. Программа может просто упасть. А так как оригинальный адрес из string потерялся после strcat, то еще и утечка памяти здесь есть, если нигде больше указатель на сохранялся.
0
|
37 / 32 / 10
Регистрация: 31.08.2016
Сообщений: 327
|
|||||||||||
10.01.2019, 09:26 [ТС] | 3 | ||||||||||
0
|
Супер-модератор
![]() ![]() |
|
10.01.2019, 11:41 | 4 |
Тебе же написали, что у тебя будет утечка. Та память, которая была выделена под string в третьей строке, благополучно утечет, потому что после выполнения 4-ой строки у тебя string указывает вообще в другое место. На кой вообще понадобилось присваивать string-у результат выполнения операции конкатенации?
Я уж не говорю о том, что все эти пляски с Сишными строковыми функциями в Билдере выглядят убого, когда есть гораздо более мощные средства.
0
|
37 / 32 / 10
Регистрация: 31.08.2016
Сообщений: 327
|
||||||
10.01.2019, 13:49 [ТС] | 5 | |||||
в другое? проверим
0
|
Супер-модератор
![]() ![]() |
||||||
10.01.2019, 14:00 | 6 | |||||
Првда. Но перед тем, как это делать, неплохо было бы почитать доку на функцию, не правда ли? А там сказано, что
0
|
550 / 369 / 137
Регистрация: 11.01.2019
Сообщений: 1,532
|
|
12.01.2019, 11:06 | 7 |
Функция strcat дописывает source справа к destination. Она даже не проверяет достаточность памяти в destination для хранения результирующей строки. Если строки source и destination были сформированы с помощью new[], то их обе надо удалить, используя delete[].
PS: Вместо strcat лучше использовать strncat ИМХО.
0
|
12.01.2019, 11:06 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Статическая память,Динамическая память. delete[] не освобождает память? Динамическая память Динамическая память Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |