sprintf数据长度疑惑

来源:互联网 发布:网络用语ddp是什么意思 编辑:程序博客网 时间:2024/06/05 09:25
           char sw_version_info[20];
.....
            if (__copy_from_user(sw_version_info, (void __user*)arg, 20)) {
                return -EFAULT;
            }
                sprintf(chip, "%s", &sw_version_info[1]);


sw_version_info[20]内容十六进制如下:
01 73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e

chip为unsigned char chip[32],内容如下:
73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e c0 ff ff ff 13 b0 8c dc 7f 53 88 cb 10
4e之后的内容通过%s显示为乱码。

若将sw_version_info[20]改sw_version_info[32],如下:
01 73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e 00 00 00 00 00 fe 77 a6 c0 ff ff ff
chip 如下:
73 77 20 35 33 31 0a 20 20 66 70 73 65 72 76 65 72 3a 4e 00 00 00 00 00 00 00 00 00 00 00 00 00

请问乱码的数据是哪里来? sprintf传入的参数格式问题?
0 0
原创粉丝点击