删除用 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));

但你必须记住,此时的记录已清零(未使用),最好由一些 属性。