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

[[Smallptr]] attribute In many algorithms that use a large number of

pointers, a large amount of memory can be consumed on 64-bit processors, since a normal pointer is 8 bytes. If you can guarantee that the pointer value fits in the first 4 gigabytes of the address space, you can use 32-bit pointers with the smallptr attribute. This attribute is equivalent to the __ptr32 __uptr pair in the Microsoft compiler.

А если гарантии нарушатся, что произойдёт, сегфолт? Что будет, если скопировать обычный указатель в маленький, и наоборот?

2 ответов

9 просмотров

1. При конвертации слишком большого (в смысле, вылезающего за 4Гб) указателя в маленький скорее всего имеется в виду undefined behaviour, но я бы ожидал простой обрезки лишних бит. И тогда может быть всё, что может произойти из-за чтения корректного (но не туда) либо некорректного указателя. В том числе и продолжение работы приложения с неверными вычислениями. 2. При конвертации из маленького в обычный скорее всего значение должно сохраниться. Но если маленький был получен из большого с обрезкой бит, то значение нового большого не совпадёт со старым.

Старшие 32 бита обнулятся

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта