首页 > 技术文章 > 关于对字符串的"sizeof"

data-base-of-ssy 2018-08-30 11:47 原文

  前天调试程序的时候,写了个串口中断发送函数,在往串口助手发送时,表面上看数据没有错误,但是将串口助手在“字符和十六进制”显示之间切换时,原本正常的数据就出错了,数据来回变,会变成别的东西,这个现象误导了我,也不知道到底哪里出了问题,后来想到翻开以前调试正常的程序拿来对比,发现这次新写的串口发送函数因为是依靠字符串长度的不断“减1”来达到发送整个字符串的目的,但是在传参的时候,这个长度参数,用了sizeof来统计字符串长度,可能是因为字符串后面有“\0”结尾,所以多统计了一个数字,导致发送过去的数据其实有一个数据是不应该访问的随机数,但是具体还要做实验判定,以后再碰见串口助手出现这种情况,可以来考虑一下这个问题。

推荐阅读