私たちが使用している静的解析ツールは、次のような C コードに重大なバッファ オーバーフローとしてフラグを立てています。
#define size 64
char buf [size + 1] = "";
memset (buf, 0, size + 1);
ツールのエラー メッセージは次のとおりです。 バッファ オーバーフロー(範囲外の配列インデックス): 配列 'buf' のサイズは 1 です。配列 'buf' は 0..64 インデックスを使用する可能性があります。
これは合法ですか?文字配列を空の文字列に代入すると、実際にその長さが 1 バイトに短縮されるのchar buf [] = "";
でしょうか?