将unsigned char *赋给结构体内的结构体
时间: 2023-08-03 20:05:05 浏览: 58
数据结构 计算结构体大小
假设结构体的定义如下:
```
struct inner_example {
unsigned char inner_data[5];
};
struct example {
struct inner_example inner;
};
```
可以通过以下方式将 unsigned char * 赋值给结构体内的结构体 inner_example 中的 inner_data 成员:
```
unsigned char *input_data = /* some input data */;
struct example ex;
memcpy(ex.inner.inner_data, input_data, 5);
```
这里同样使用了 memcpy 函数将 input_data 的前 5 个字节复制到了 ex.inner.inner_data 数组中。需要注意的是,如果 input_data 的长度小于 5 个字节,那么可能会出现访问非法内存的错误。同时,如果需要给结构体中的多个内部结构体赋值,可以使用类似的方式,分别给每个内部结构体的成员赋值。
阅读全文