いくつかのレガシー RAID コードの修正に行き詰まっています (はい、最短のストローを引っ張りました)。
Heres は、私が見つけたコードのスニペットです。
#define FLAG_LENGTH 256
#code
char str[FLAG_LENGTH-1]
strlcat(&str,source_ptr,FLAG_LENGTH);
正当な理由でサイズが 1 少ないという str 宣言のすぐ上にコメントがありますが、寛大なコメント ライターは「正当な理由」について言及していません。
strlcat の実装を正しく理解していれば、すべての文字列が NULL で終了し、サイズが 256 の場合、サイズ 255 の文字列、つまり最後のインデックス 254 の 256 番目の文字、つまりインデックス 255 に追加されます。ストリング??それとも、これを行うことに隠れた天才がいますか(純粋にコメントに基づいて質問しています)