C语言中,结构体是一种稳定的结构(有固定的内存空间占用),对于不定长字符串其实有两种处理方式
1. 虽然不定长,但最长不太长,可以用字符串数组直接存储在结构体中,比如明确某个字符串最多20个字符,则可以用20个字符串的字符数组来存储,少于20个字符时,用'\0'表示结尾
2. 在结构体中存储指向字符串实体的指针(需要注意这种情况并不能保证数据指向是有效的),使用时也要注意需要验证后才使用。
总之,在结构体中包含不定长字符串的处理都是比较麻烦的,要小心使用。
把两个数据,强制转换成char *的,使用指针进行赋值。
这样,是不论是什么数据类型,都是可以转换过去的
两种方法
1、事先开辟一个比较大的静态存储区,大到足够放下最长的字符串,然后每次串口收到数据,就往这个存储区里面放
2、使用动态分配的方法,一次分配16个字节,不够就再分配