将unsigned char *赋给结构体内的结构体
时间: 2023-08-03 17:05:05 浏览: 62
假设结构体的定义如下:
```
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 个字节,那么可能会出现访问非法内存的错误。同时,如果需要给结构体中的多个内部结构体赋值,可以使用类似的方式,分别给每个内部结构体的成员赋值。
相关问题
将unsigned char *赋给结构体内的结构体的两个成员
假设结构体的定义如下:
```
struct inner_example {
unsigned char inner_data1[5];
unsigned char inner_data2[5];
};
struct example {
struct inner_example inner;
};
```
可以通过以下方式将 unsigned char * 赋值给结构体内的结构体 inner_example 中的 inner_data1 和 inner_data2 成员:
```
unsigned char *input_data = /* some input data */;
struct example ex;
memcpy(ex.inner.inner_data1, input_data, 5);
memcpy(ex.inner.inner_data2, input_data+5, 5);
```
这里使用了两次 memcpy 函数,第一次将 input_data 的前 5 个字节复制到了 ex.inner.inner_data1 数组中,第二次将 input_data 的第 6 到第 10 个字节复制到了 ex.inner.inner_data2 数组中。需要注意的是,如果 input_data 的长度小于 10 个字节,那么可能会出现访问非法内存的错误。同时,如果需要给结构体中的多个内部结构体的成员赋值,可以使用类似的方式,分别给每个内部结构体的成员赋值。
将unsigned char *赋给结构体
假设结构体的定义如下:
```
struct example {
unsigned char data[10];
};
```
那么可以通过以下方式将 unsigned char* 赋值给结构体的 data 成员:
```
unsigned char *input_data = /* some input data */;
struct example ex;
memcpy(ex.data, input_data, 10);
```
这里使用了 memcpy 函数将 input_data 的前 10 个字节复制到了 ex.data 数组中。需要注意的是,如果 input_data 的长度小于 10 个字节,那么可能会出现访问非法内存的错误。
阅读全文