Quais são os casos de uso da vida real para ponteiros marcados?
Isso se deve principalmente à leitura de pequenos sistemas de 64 bits e aos possíveis usos de ponteiros de palavras de 64 bits .
Para meu entendimento, ponteiros marcados são endereços que podem conter informações extras em bits devido ao possível espaço de endereço nessa arquitetura específica, que é muito menor.
Mas então, é possível usar ponteiros marcados além de casos triviais? Alguma idéia legal / exemplos?
Existem bibliotecas populares, estruturas que aproveitam os ponteiros de 64 bits por meio de ponteiros com tags? Isso é possível em todos os hardwares?
Respostas:
A biblioteca critbit trie usa ponteiros marcados para diferenciar nós internos e externos na trie. Ao garantir que novos nós sejam alocados alinhados a um determinado valor, você garante que alguns dos bits mais baixos do endereço sejam zero, cujo número depende do alinhamento necessário. Você pode armazenar outras informações nesses bits ... no caso de nós críticos, o LSB é definido se o nó for externo (uma folha). Lembre-se de desmarcar o endereço se você pretende usá-lo.
Economiza ter uma variável de membro extra na estrutura do nó.
fonte