Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
char imei_temp[14] = {0, }; strcpy(imei_temp, "00000000000000");
根据我的理解,这是有效的代码。
但是 Klocwork 说缓冲区溢出,' imei_temp' 的数组索引可能超出范围。大小为 14 的数组 ' imei_temp' 可以使用索引值 0..14
imei_temp
这是一个缓冲区溢出,因为您的缓冲区是 14 个字节,但您正在向它写入 15 个字节:14 个 ascii“0”,最后是一个空字节。
当您使用"s 指定一个字符串时,它会在字符串的末尾添加一个隐式\0,您正在尝试将 15 个字节复制到 14 个字节的缓冲区中。
"
\0
'请注意,当您使用s指定字符时,不会发生这种情况。
'