我有一个字符缓冲区[1024]
和一个结构
typedef struct {
int record;
int key;
} leaf_entry;
我想要实现的是缓冲区数组,它就像树的节点一样,保存许多 leaf_entry 条目。
如果我想向下迭代缓冲区以将缓冲区中的一个条目与另一个条目进行比较
for (i = 0; i < max_ents * entry_size; i += entry_size)
{
leaf_entry curr;
memcpy (curr, buffer[i], entry_size)
if (curr == entry_to_compare)
etc...
}
这是正确的吗?有没有更简单/更有效的方法来实现这一点?
最佳答案
鉴于您的结构是 POD,您应该能够在不复制的情况下执行此操作。
我相信这样的事情应该可以工作,其中 offset 是字符缓冲区中的正确字节偏移量:
leaf_entry & x = static_cast<leaf_entry &>(buffer + offset);
关于c++ - memcpy 从 char 数组到结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643628/