删除用 memcpy 编写的结构
Delete struct written with memcpy
我有一个内存块分配。我们有一个 struct Record
需要保存在这些内存块中。每个块包含 5 条记录,我在块列表中一个接一个地 memcpy 和一个 int CountOfRecords
.
我们还有一个 DeleteRecord 函数,可以从内存块中删除 (duh) 特定记录。现在,除了减少计数并向前移动所有下一个记录以实际删除该记录之外,还有什么方法可以实际删除用 memcpy 写入的内容吗?就像将 NULL 之类的东西写成结构实例? Memmove好像没有提供这样的应用。
编辑:我这样写记录
//block is the pointer to block,int is for the Count, and record is placed
memcpy(block+sizeof(int)+sizeof(Record),&record,sizeof(Record));
您基本上不想移动数据而是将内存设置为零,memset 怎么样?
memset(block+sizeof(int)+sizeof(Record), 0, sizeof(Record));
但你必须记住,此时的记录已清零(未使用),最好由一些 属性。
我有一个内存块分配。我们有一个 struct Record
需要保存在这些内存块中。每个块包含 5 条记录,我在块列表中一个接一个地 memcpy 和一个 int CountOfRecords
.
我们还有一个 DeleteRecord 函数,可以从内存块中删除 (duh) 特定记录。现在,除了减少计数并向前移动所有下一个记录以实际删除该记录之外,还有什么方法可以实际删除用 memcpy 写入的内容吗?就像将 NULL 之类的东西写成结构实例? Memmove好像没有提供这样的应用。
编辑:我这样写记录
//block is the pointer to block,int is for the Count, and record is placed
memcpy(block+sizeof(int)+sizeof(Record),&record,sizeof(Record));
您基本上不想移动数据而是将内存设置为零,memset 怎么样?
memset(block+sizeof(int)+sizeof(Record), 0, sizeof(Record));
但你必须记住,此时的记录已清零(未使用),最好由一些 属性。