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

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

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

61 ответов

23 просмотра

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

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

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
По ногам...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта