в куче?
с какой целью
интерестно узнать как все работает
https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentthreadstacklimits и отладчик
Можно создать локальную переменную и сравнить ее адрес с this :)) Никаким уровнем абстракции вроде бы не гарантировано, но работает
Стек растет к меньшим адресам, значит если &local < this то объект на стеке
Контрпример?
Если ты создал объект на стеке, значит, он на стеке, нет разве?
&local < this Полагаю, что мы говорим о this local расположен на стеке, this - в куче; стек расположен в диапазоне меньших адресов, неравенство выполнено
Насколько я помню, в легальном C++ нельзя полагаться на результаты сравнения адресов произвольных объектов
Кажется, за рамки Стандарта мы вышли уже давно
Мой опыт говорит, что обычно то что называют хипом лежитв. Меньшем диапазоне. еслриже будет наоборот, то есть как ты написал то работать не будет.
Бл... да просто this может указывать на auto объект , созданный раньше local или позже local. Это уже не говоря о том, что стек может вдруг расти вверх или вправо, или вообще отсутствовать.
Да, я в первом сообщении написал, что нет гарантий
Контрпример на месте. Актуально в Windows, которая у ТС :)
Можно. Заведи булев параметр у конструктора ещё один (ну или enum), и передавай при создании туда признак того, что объект создан на стеке или в хипе.
Нее, лучше создать string и написать."I bil sozdan v steke" а другой ."I bil sozdan v hepe"
Ох уж эти анонимусы…
опять до аватарки докапываются(. Просто классная аватарка и ничего более емае
Можно сравнить адрес объекта с тем что покажет sbrk
Обсуждают сегодня