【发布时间】:2018-06-11 02:17:12
【问题描述】:
所以我有一个结构,里面有数组,如下所示:
struct struct1 {
unsigned char data1[32];
unsigned char data2[32];
char *id;
};
第二个结构定义为
typedef struct
{
uint8_t id;
uint8_t data1[32];
uint8_t data2[32];
} struct2;
其中已经包含数据的 Struct1 通过如下函数传递给我:
bool func1(struct struct1 * const struct1)
我需要创建一个新的 struct2 并将 struct1 中的所有数据传递给它。
我以为我可以像这样分配指针
struct2 *new_struct;
new_struct->id = struct1->id;
new_struct->data1 = struct1->data1;
new_struct->data2 = struct1->data2;
但我猜 C 中的数组指针无法更改(或者至少这是我从阅读中得到的)。
那么我如何创建一个新的 struct2 并将我需要的数据从 struct1 传递给它呢?
【问题讨论】:
-
memcpy(struct1->data1, new_struct->data1, size_of(struct1->data))