c - 删除用 memcpy 编写的结构
问题描述
我有一个关于内存块的任务。我们有一个struct Record
我需要保存在这些内存块中的东西。每个块包含 5 条记录,我在一个块列表和一个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));
但是您必须以某种方式记住,此时的记录已清零(未使用),最好是某些属性。
推荐阅读
- javascript - 在 Object.Assign 之后搜索过滤器嵌套数组得到修改后的原始数组
- r - Salesforce:通过 R 中的 URL 下载报告
- python - 如何在 Python 中正确绘制数据
- javascript - 是否有依赖选择字段的 javascript 解决方案?
- android - 过渡 GradientDrawable
- javascript - 如何在 NodeJS 中从 hmacsha1 生成 NodeJS 签名代码
- unity3d - Unity 3D 中的空项目
- r - 在 R 中合并行和求和
- java - 我如何将此输入字符串转换为 BST(二进制搜索树)-JAVA?
- c++ - 如何在 C++ 中的数组中加载 Wav 文件?