<分区>
我想知道哪些指针值无效,这样我就不必分配新内存来标记特殊 block 状态(内存消耗很关键)。所以我可以将它们用于特殊状态,例如
- 0x00000000 - 表示 block 未加载
- 0x00000001 - 表示 block 为空
- 0x00000002 - block 已满。当需要将一些真实的东西保存到内存中时,我会执行 new Chunk(...);
<分区>
我想知道哪些指针值无效,这样我就不必分配新内存来标记特殊 block 状态(内存消耗很关键)。所以我可以将它们用于特殊状态,例如
最佳答案
我建议只使用包含指针和枚举的结构。但如果由于某种原因不方便,只需分配一些小结构并使用它们的地址来指示魔术指针值。 (当然,永远不要释放它们。)
你也可以使用静态对象的地址。像这样:
static int chunk_not_loaded_i, chunk_empty_i, chunk_full_i;
void *chunk_not_loaded = &chunk_not_loaded_i;
void *chunk_full = &chunk_full_i;
if (some_chunk == chunk_not_loaded)
...
关于C++ 无效的指针值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766869/