本帖最后由 costpope 于 2019-11-23 20:43 编辑
我写的一段程序数组1大约是50字节,数组2没有太在意是30字节,实际使用时就看到strcat不断在检测数组2是否到头了,(BNE 和 0x00比较)我就看见BNE比较的地址不断的在被写进新的内容,导致strcat 实际上永远读不到0x00的那个字节,然后就hard fault.
我把数组1设为150的长度,问题就解决了。
我弄不明白的是,这里面具体的细节是怎么样的,为什么会出现strcat 需要寻找‘ ’的地方不断被写入新的内容的现象。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
其他的不安全的函数有相应的安全版本替代,但不会像strcpy/strcat那么曲折。
那都是哪个库里面的?
不是。strcat/strcpy不检查缓冲区的长度,strncat/strncpy虽然检查了缓冲区长度但是不保证 结尾,都是坑
一周热门 更多>