字符串如何在c的内存中表示

shu*_*nty 2 c string pointers klocwork

char imei_temp[14] = {0, };

strcpy(imei_temp, "00000000000000");
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这是有效的代码.

但是Klocwork说缓冲区溢出,' imei_temp'的数组索引可能超出范围.imei_temp大小为14的数组' '可以使用索引值0..14

Ned*_*der 13

这是一个缓冲区溢出,因为你的缓冲区是14个字节,但你写的是15个字节:14个ascii"0",最后是一个空字节.