Заблокирован
|
||||||
1 | ||||||
На какой адрес указывает указатель?17.09.2015, 15:42. Показов 785. Ответов 15
Метки нет (Все метки)
Добрый день !
Подскажите пожалуйста , почему при такой записи от компилятора не получаю ошибку ?
что за адрес хранится в P5 ?
0
|
17.09.2015, 15:42 | |
Ответы с готовыми решениями:
15
Как определить на какой тип памяти указывает указатель? Если указатель хранит адрес ячейки памяти, на которую он указывает, то почему тогда в моем экспериментальном коде такой результат? В какой области памяти хранится указатель (сама переменная, которая хранит адрес)? Указатель а (типа int) был с адресом "1С96", вопрос — Какой адрес станет у а, после а+=2? |
Администратор
|
|
23.09.2015, 16:27 | 4 |
Здесь я не буду утверждать, но раз речь идёт о экземпляре структуры, для которой выделяют отдельную переменную в куче, вполне резонно говорить о упаковке/распаковке.
0
|
Администратор
|
|
23.09.2015, 17:40 | 6 |
RAFA91, я не собираюсь разжёвывать вам любую ерунду, которая вам вдруг стала непонятной.
Я разбираюсь с вопросом вместе с вами, а не вместо вас. Если вы не утрудились прочитать про упаковку и распаковку или, если вы знаете ответ или где его взять, но изощрённо меня испытываете - увольте, мне это удовольствие не нужно.
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
24.09.2015, 15:01 | 8 |
познакомьтесь с отслеживающимися ссылками:
https://msdn.microsoft.com/ru-... 3062a.aspx вы - не кидали,а компилятор взял и создал в управляемой куче объект и вернул его адрес. Вам правильно говорят, читайте про упаковку и распаковку.
0
|
Заблокирован
|
||||||||||||||||
24.09.2015, 16:36 [ТС] | 9 | |||||||||||||||
Решил протестировать такую штуку.
из func_3() возвращаю ссылку (в противном случае не работает) эта ссылка присваивается ссылке K функции мейн.
____________________________________ теперь собственно вопрос : на что указывает ссылка K если был вызов деструктора ? почему ссылка K позволяет изменять значение х с помощью метода func_2() и это значение изменяется . она что активна ? в чистом с++ это бы не работало. ___________________________________
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
24.09.2015, 18:39 | 10 |
RAFA91,хороший вопрос...надо ждать знатоков.
P.S. НЕ возвращайте адрес локальной переменной. Здесь это прошло,а если бы переменные хранились в стеке переменная могла потом принять другое значение.
0
|
Администратор
|
|
24.09.2015, 21:46 | 11 |
Вызов деструктора в управляемой среде не гарантирует немедленное удаление объекта. До тех пор, пока сборщик мусора не подберёт этот экземпляр, он будет лежать в памяти.
Также, вызов деструктора не форсирует вызов сборщика мусора, он лишь делает экземпляр доступным для сборки. GC во многом живёт своей жизнью. Более того, даже вызов GC::Collect() не гарантирует немедленного вызова сборщика мусора. Такое прокатит не со всеми типами - многие при любом обращении к ним после вызова деструктора или метода Dispose() будут выбрасывать ObjectDisposedException.
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
||||||
24.09.2015, 22:32 | 12 | |||||
Вы правы. Сборщик мусора очищает память когда захочет и перемещает объекты по куче как хочет.
Подвох в том,что здесь память выделяется непонятно как(хитрое взаимодействие с кучей). Если заменить такое выделение,на
Если переделать класс под value то работать будет аналогично с обычным C++: стек будет перезатерт после некоторого другого действия. Не по теме: Говорят C++ сложный,это они с C++/CLI не сталкивались :D
0
|
tezaurismosis
|
24.09.2015, 22:36
#13
|
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
25.09.2015, 12:15 | 15 |
мне вы это зачем говорите? Вы текст читайте полностью,а не куски выдергивайте:
0
|
Заблокирован
|
|
26.09.2015, 16:04 [ТС] | 16 |
ПОЧЕМУ в value классе нельзя написать свой оператор = ?
0
|
26.09.2015, 16:04 | |
26.09.2015, 16:04 | |
Помогаю со студенческими работами здесь
16
Частный адрес, динамический адрес, статический адрес - какой у меня? Объявить в классе-наследнике указатель, указывающий туда же, куда указывает указатель в классе-родителе Сохранить адрес из указателя в другой указатель, а потом первый указатель удалить Узнать указывает ли указатель Указатель не указывает на CHAR Указатель куда указывает? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |