如何压缩指针?例如.任意位指针

tom*_*234 8 c++ algorithm gpu bit-manipulation data-structures

我正在编写一个复杂的树数据结构,它存储了许多指针.指针本身占用了大量空间,这就是我期望保存的东西.

所以我在这里询问是否有这方面的例子.例如:对于64位数据类型,如果指向的数据肯定是连续的,我可以使用32位或更少的指针吗?

我找到了一篇名为"关联数据结构的透明指针压缩"的论文,但我认为可能有一个更简单的解决方案.

Mar*_*som 5

而不是使用指针,使用索引到数组.short如果数组长度小于65536,则索引可以是a; 如果小于2147483648 ,则索引可以是int32_t.

任意指针实际上可以在内存中的任何位置,因此无法将其缩短超过几位.