gpt4 book ai didi

c - 如何将结构中的多个 void 指针取消引用到 1 block 内存中?

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:20 27 4
gpt4 key购买 nike

我正在做一个项目,我需要通过某个 IPC 堆栈(在我的例子中是 LCM)发送,问题是我需要为 IPC 提供一个可变长度的结构。我有

struct pack1 {int value1; int value2;};
struct pack2 {void *data; int data_size;};
//data won't always point to pack1 types

我有一个指向 pack2 的指针,我需要类似序列化的东西,所以我可以通过网络将这个 pack2 发送到另一个进程。

有人知道怎么做吗?

最佳答案

LCM 支持可变长度数组,请参阅引用手册中的“数组”部分:http://lcm.googlecode.com/svn-history/r401/www/reference/lcm/tutorial-lcm-language.html

但是,您的数据是通过 void* 访问的,它只是指向“未知”类型的指针。如果您的数据只是字节,那么将其视为字节数组可能会奏效,就像您的 LCM 定义中的这样:

struct pack2 {
int32_t data_size;
unsigned char data[data_size};
}

关于c - 如何将结构中的多个 void 指针取消引用到 1 block 内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4925923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com