2016-04-20 20 views

答えて

2

3行目が必要ですか? \ 0は自動的に追加されないためです。

3行目は必要ありません。 strcpyには'\0'が追加されます。 man strcpyから

:文字列はsrcで指さ

strcpy()機能コピー、終端のNULLバイト('\0')を含む は、バッファにDESTによって指さ。文字列は重複しないで、宛先文字列 destはコピーを受け取るのに十分な大きさでなければなりません。バッファーに注意してください オーバーラン! (バグを参照してください。)

はまた、次の点に注意してください​​のタイプが値'T''e''s''t''\0'const char [5]です。

+0

ありがとうございました。バッファにガベージ・バリューがないことを確認するために、コピーする前に 'memset(buffer_2、0、245);'を使用することをお勧めしますか? – user2140086

+1

Mandarotyではありませんが、 'buffer_2'が' malloc'されているかクライアントから受け取られている場合は、セキュリティ問題を避けるため 'memset'を' 0'で行うことを好みます。 (これには機密情報が含まれている可能性があります) –

+1

@ user2140086:最初の行は必要ありません。 – usr2564301

関連する問題