170 похожих чатов

O/ а есть ли вероятность, что числовое значение указателя на

динамический объект в куче окажется меньше, например 100?

61 ответов

20 просмотров

Стандартом это не специфицируется. Так что в теории вероятность есть, и она ненулевая Зачем такое знание то?

Только теоретически, но фактически нереально

disba1ancer
Только теоретически, но фактически нереально

Ну на микроконтроллерах может каких разве что...

Denis P
с чего бы

Имею в виду что практически не встречается

anton- Автор вопроса
Georgy Firsov
Стандартом это не специфицируется. Так что в теори...

У меня объект либо хранит указатель, либо он nullptr но при этом ему нужно хранить небольшое число.

anton
У меня объект либо хранит указатель, либо он nullp...

как и обычно главный вопрос зачем писать кривые вещи а потом бороться с ними)

anton
У меня объект либо хранит указатель, либо он nullp...

Чего? Это как вообще? Если указатель равен nullptr, то как он может быть равен чему-то другому?

anton- Автор вопроса
Georgy Firsov
Чего? Это как вообще? Если указатель равен nullptr...

Что чего? Либо объект хранит указатель, либо число.

anton
Что чего? Либо объект хранит указатель, либо число...

Так а при чем тут указатель то? И при чем тут вероятность того, что он хранит малые численные значения? Есть вариант, да... Скорее всего это то, что нужно

Georgy Firsov
Так а при чем тут указатель то? И при чем тут веро...

Наверное хотел в указателе хранить число от 0 до 100 и сравнивать

anton- Автор вопроса
Georgy Firsov
Так а при чем тут указатель то? И при чем тут веро...

Если указатель меньше 100, то это не указатель

Yalokin Kononov
Наверное хотел в указателе хранить число от 0 до 1...

Ну по факту-то никто не мешает Хотя юнион/вариант будет более органичен для данного действа

anton
Если указатель меньше 100, то это не указатель

Да с какой бы это стати? Указатель определяется типом Если тип - указатель, то это ни что иное, как указатель

anton
Если указатель меньше 100, то это не указатель

а можно всю задачку с подробностями? В такой формулировке это немного неверно

anton- Автор вопроса
смкх
а можно всю задачку с подробностями? В такой форму...

Объект хранит либо указатель, либо число. Можно хранить и то и то, и если указатель nullptr, использовать это число. Можно сделать юнион, но где-то вам нужно будет хранить, какой тип у вас в юнионе сейчас, так что это не имеет смысла, кмк.

anton
У меня объект либо хранит указатель, либо он nullp...

На x86-64 в указателе можно хранить и указатель, и небольшое число одновременно

Есть

Yalokin Kononov
он про другое

Почему же, я предлагаю ещё шире решение

anton
Объект хранит либо указатель, либо число. Можно хр...

Да и вообще как-то даже variant жирновато Просто две переменные в классе и ок. Указатель и число. Как-то без особой на то причины городить variant/union не имеет смысла. Да, неплохо подходит, но смысл?

Georgy Firsov
Да и вообще как-то даже variant жирновато Просто д...

можно не использовать вариант, это лишний бул!

Nobody
Есть

Как и встретить в Москве динозавра (особенно в современных ОС)

Dmitriy [Отпуск]
uint32_t так-то как минимум

если свой писать можно обойтись булем

Dmitriy [Отпуск]
Как и встретить в Москве динозавра (особенно в сов...

Это не значит, что нужно закладываться на поведение, что указатель имеет значение < 100

Denis P
что за экономия на спичках то

Так вот вариант это и есть, имхо, экономия на спичках, чтобы в одну область впихнуть две переменные Не вижу смысла его пихать вместо двух лежащих рядом переменных

Dmitriy [Отпуск]
Можно. Жду пруфов

Пруфов чего, здравого смысла?)

Georgy Firsov
Так вот вариант это и есть, имхо, экономия на спич...

Если речь про локальные переменные то про юнионы стоит забыть, если компилятор не говно

Nobody
Пруфов чего, здравого смысла?)

Пруфов использования нулевой странички в современных ОС

disba1ancer
Если речь про локальные переменные то про юнионы с...

вариант фигово оптимизируется компилятором и он зачастую хуже самописного юниона

Dmitriy [Отпуск]
Пруфов использования нулевой странички в современн...

А что С++ только для современных ОС существует?

Nobody
А что С++ только для современных ОС существует?

Нет, можно даже под dos написать программу

Nobody
А что С++ только для современных ОС существует?

А для чего еще существует полноценный С++?

disba1ancer
Если речь про локальные переменные то про юнионы с...

Так я не про юнион Просто в данном контексте не вижу глобального смысла использовать это: std::variant<int, T*> val; Вместо этого: int val_int; T* val_ptr; Ну уж очень сомневаюсь я, что в действительности это необходимо в задаче решаемой

Georgy Firsov
Так я не про юнион Просто в данном контексте не ви...

Так если это локальные переменные то может быть и бред

Dmitriy [Отпуск]
Это не С++ будет

C++ вообще не существует Потому что в рантаймах, компиляторах и ОС куча багов

disba1ancer
Так если это локальные переменные то может быть и ...

Да даже если мемберы класса. Какое-то усложнение лишнее с юнионами и вариантами выходит Вероятность того, что потребуется ужимать класс до минимальных размеров, кажется, ещё меньше вероятности числового значения указателя меньше 100😊

anton- Автор вопроса
Georgy Firsov
Так я не про юнион Просто в данном контексте не ви...

да, смысл был в том, чтоб хранить информацию о типе в виде "а оно больше 100 ? указатель : число". Просто стало интересно, кажется я никогда не видел численно маленьких указателей.

anton
да, смысл был в том, чтоб хранить информацию о тип...

Прям железно на это закладываться не стоит. Попахивает это. Да и указатели для хранения чисел юзать - такое. Две перемнные лучше держать и ок. Ну в крайних уж случаях их как-то в одну область памяти умещать. Но это не нужно скорее всего.

Georgy Firsov
Так я не про юнион Просто в данном контексте не ви...

Моё мнение касается общего случая, конкретную нить беседы я не отслеживал, но... Смысл есть — семантика и контроль инварианта. Можно случайно обратиться к переменной, которой логически "нет" и не получить ошибку. Или задать значения одновременно обеим, хотя "существует" лишь одна. И, вот, вместо того, чтобы контролировать такую консистентность данных самостоятельно... а чем дальше, тем труднее... Лучше доверить это готовому инструменту — варианту, который в случае чего тебя будет бить по рукам... ну, или по лапкам — каждому своё

Ofee Oficsu
Моё мнение касается общего случая, конкретную нить...

Ну если только из таких побуждений. Кода в любом случае нет, так что трудно говорить на примере Но кажется мне, для простых кейсов - усложнение какое-то + зависимость от <variant> и всего того, что он за собой тянет Когда логика сложная - да, возможно. Но сложной логики по возможности стоит вообще избегать

Georgy Firsov
Так я не про юнион Просто в данном контексте не ви...

Иронично что вариант будет есть столько же памяти сколько и эти две переменные рядышком

다니엘(줄리아)
вопрос удобства

Две переменные рядом Уютненько

Ilya Zviagin
По ногам...

"Тяжёлый - это надёжно. Если такой не выстрелит, то им всегда можно врезать по башке"

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта