2
char imei_temp[14] = {0, };

strcpy(imei_temp, "00000000000000");

私の理解によれば、これは有効なコードです。

しかし、Klocworkはバッファオーバーフローを言っています。' imei_temp'の配列インデックスは範囲外である可能性があります。サイズ14の配列' imei_temp'は、インデックス値0..14を使用できます。

4

2 に答える 2

13

バッファが14バイトであるため、バッファオーバーフローですが、15バイトを書き込んでいます:14個のASCII「0」と最後にヌルバイト。

于 2012-06-21T00:44:15.153 に答える
3

sを使用して文字列を指定すると、文字列の最後に"暗黙的に追加\0され、15バイトを14バイトのバッファにコピーしようとします。

sを使用して文字を指定した場合、これは発生しないことに注意してください'

于 2012-06-21T00:44:46.140 に答える