c - 如何将 int 存储在由 malloc 分配的 char * 中
问题描述
我试图将一个 int 值(所有 4 个字节)存储到一个char *中:
所以,我想将完整值,即 int 变量的所有字节(全部 4 个)存储到 char 中,这样我就用完了 512 个字节中的 4 个字节。我也应该能够读回我分配的值。我尝试使用很多东西,但无法弄清楚这一点。
这适用于我的 LFS(日志文件系统),我尝试使用数据碎片将文件存储到磁盘上的数据块中
char *c = malloc(512);
int value = 4096;
解决方案
您可以复制到指向的缓冲区中c
:
memcpy(c, &value, sizeof(value));
如果要在其后写入另一个值,可以将偏移量添加到c
:
memcpy(c + sizeof(value), &value2, sizeof(value2)); // adds value2 at an offset right after value
要读取该值,您可以将其复制到不同的变量中:
int readVal;
memcpy(&readVal, c, sizeof(readVal));
推荐阅读
- c# - Redis Sentinel - 此操作已在命令映射中禁用且无法使用:GET C#
- javascript - 如何从字符串中删除 First even no?
- flutter - Flutter 冷冻包装密封类方法
- elasticsearch - Elasticsearch如何计算索引中所有文档的多个字段中的特定值?
- c# - 如何在不需要 npm 的情况下设置语义发布?
- javascript - 为什么 ag grid 忽略提供的 defaultExcelExportParams 选项?
- reactjs - 如何正确设置获取标志
- json - 在 Django 中针对 JsonField 进行过滤,该 JsonField 是一个 JsON 数组,其中包含日期值
- nix-shell - 什么是 `nix-env -f` 的 `nix-shell` 等价物
-iA ...`? - reactjs - 所有列表元素的 useState 更新