c++ - 如何将 8 个字节写入 void * 地址?

标签 c++ c pointers data-structures

所以我定义了一个8字节的数据结构

typedef struct __attribute__((__packed__)) entry{
    // something here total 64 bits;
}entry_t;

我有一个 void* base,它是一个指针,指向我要放置条目的位置。

entry_t a;
*base = a;

做这份工作?

或者我必须将基数转换为指向 entry_t 的指针?

更新
抱歉,我没有提到我不能使用 memcpy,因为我使用的内核还没有实现 memcpy。

最佳答案

或者:

*((entry_t *)base) = a;

memcpy(base, &a, sizeof a);

当然,请确保实际上有 8 个字节可供复制。

关于c++ - 如何将 8 个字节写入 void * 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21447108/

相关文章:

c++ - 将 boost::strand 包装的处理程序存储在数组中

android - NDK BUILD 没有那个文件或目录

c - 使用命令从 Contiki 删除 cc2650 的所有内容

C - 将元素数组转换为二维矩阵

c - 解释值驻留在 Linux 32 位进程地址空间中的位置

c++ - 无法在 Travis CI 上安装 boost + libstdc++

c++ - 我可以在不实例化的情况下使用函数对象吗?

c - 用指针复制数据结构

c++ - 如何在指针中返回指针中的指针

c - 通过指针表示法写入二维数组