Здравствуйте, гость ( Вход | Регистрация )
|
rp80 |
22.12.2011, 13:47
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 36 Регистрация: 10.9.2011 Пользователь №: 2860 Спасибо сказали: 0 раз(а) Репутация: 0
|
Копирование указателя на объект не приводит к копированию объекта.
Значит следующий код приведет к утечки памяти: Правильно копировать так: А что происходит при копировании переменных в стеке? Теряется ли память выделенная первоначально под s? |
|
|
|
![]() |
|
Iron Bug |
23.12.2011, 9:55
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
Цитата(BRE @ 23.12.2011, 12:17) Link (в сегментных регистрах храняться уже не адреса, а дескрипторы сегментов из специальных дескрипторных таблицах GDT или LDT а, ну да. тут ещё оттуда придётся тащить данные. у дров есть функция взятия физического адреса, а вот в юзерспейсе я чота не помню, есть такая фича или нет... я-то живу в основном в кернеле в общем, тогда лучше не пытаться гадать, а взять какой-нить стандарт ELF или вендозные спецификации и почитать про конкретные оси и конкретные компиляторы. впрочем, от этого разницы никакой не будет. для программиста интерес представляет размер стека, оптимизация работы с указателями и решение использования стека или кучи. я в юзерских программах не парюсь и использую кучу. ибо она практически не ограничена и чаще всего скорость доступа совершенно не критична, так как юзерские программы обычно и без того тормозят из-за вывода и экономия на адресах не даёт никакого эффекта. |
|
|
|
rp80 копирование и память 22.12.2011, 13:47
Алексей1153 Цитата(rp80 @ 22.12.2011, 16:47) Правильн... 22.12.2011, 13:52
rp80 Цитата(Алексей1153 @ 22.12.2011, 14:52) л... 22.12.2011, 14:06
BRE Цитата(rp80 @ 22.12.2011, 14:47) А что пр... 22.12.2011, 13:53
Iron Bug Цитата(rp80 @ 22.12.2011, 16:47) А что пр... 22.12.2011, 14:03
Iron Bug Цитата(rp80 @ 22.12.2011, 17:06) Понятно,... 22.12.2011, 14:47
rp80 Цитата(Iron Bug @ 22.12.2011, 15:47) ну, ... 22.12.2011, 14:54
BRE Цитата(rp80 @ 22.12.2011, 15:54) что конк... 22.12.2011, 15:07
Iron Bug Цитата(rp80 @ 22.12.2011, 17:54) Но вопро... 22.12.2011, 15:01
rp80 Цитата(Iron Bug @ 22.12.2011, 16:01) при ... 22.12.2011, 15:47
Iron Bug Цитата(rp80 @ 22.12.2011, 15:47) В какое?... 22.12.2011, 16:03
rp80 Цитата(Iron Bug @ 22.12.2011, 17:03) с ко... 22.12.2011, 19:17
ilyabvt Цитата(rp80 @ 22.12.2011, 22:17) Цитата(I... 22.12.2011, 19:50
rp80 Цитата(ilyabvt @ 22.12.2011, 20:50) Не за... 22.12.2011, 20:03
ilyabvt Цитата(rp80 @ 22.12.2011, 23:03) Цитата(i... 22.12.2011, 20:13
rp80 Цитата(ilyabvt @ 22.12.2011, 21:13) Нет к... 22.12.2011, 20:31
ilyabvt Цитата(rp80 @ 22.12.2011, 13:47) Правильн... 22.12.2011, 17:50
Iron Bug Цитата(ilyabvt @ 22.12.2011, 20:50) Теоре... 22.12.2011, 20:35
rp80 Цитата(Iron Bug @ 22.12.2011, 21:35) смот... 22.12.2011, 23:11
Алексей1153 rp80, стек то никуда не девается. А то, что ты пра... 23.12.2011, 7:33
rp80 Цитата(Алексей1153 @ 23.12.2011, 8:33) rp... 23.12.2011, 9:46
Iron Bug Цитата(rp80 @ 23.12.2011, 2:11) Вообще во... 23.12.2011, 7:41
BRE Цитата(Iron Bug @ 23.12.2011, 8:41) если ... 23.12.2011, 9:17
Алексей1153 rp80, значит компилятор разместил переменную не та... 23.12.2011, 9:49
BRE Цитата(Iron Bug @ 23.12.2011, 10:55) а, н... 23.12.2011, 10:23
rp80 Цитата(Iron Bug @ 23.12.2011, 10:55) я в ... 23.12.2011, 10:39
BRE Цитата(rp80 @ 23.12.2011, 11:39) Т.е. ско... 23.12.2011, 10:56
Алексей1153 rp80, как разберёшься с указателями на массивы, от... 23.12.2011, 10:41
rp80 Цитата(Алексей1153 @ 23.12.2011, 11:41) r... 23.12.2011, 10:47
Алексей1153 rp80,
class A
{
public:
int ar[3... 23.12.2011, 14:36![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 13.12.2025, 22:33 |