Leetcodeがエラーを報告しました:
AddressSanitizer:pc 0x000000406b5e bp 0x7ffc15cc0320 sp 0x7ffc15cc0318のアドレス0x602000000040のヒープバッファーオーバーフロー
Address Sanitizer(ASan)は、高速メモリエラー検出ツールです。
https://www.jianshu.com/p/3a2df9b7c353これはASanの使用法へのリンクです
午後にこのバグを埋めて、他の人のコードを比較しました。明らかに、コア部分は同じ考えです。なぜ私はそれを通り抜けられないのですか、他の人から貼り付けることができます...それはおそらくバッファオーバーフローです。配列は範囲外にアクセスしていますか?次にすべてのベクトルをチェックしますか?その後、自分のコードと他の人のコードを少しずつ比較し、微妙な場所で1つずつ比較したところ、最後の問題がif判定ステートメントにあり、配列へのアクセスが範囲外であるとは思わなかった。
AND演算が実行される場所で最初にback> 0を決定する必要があるとは思いませんでした。back> 0の後、配列内の添え字back-1を使用して要素にアクセスできます。最初にback> 0を決定しないと、境界外にアクセスする可能性があります。
これは基本的な間違いであり、あまりにも少ない練習で自分を責め、バグに敏感ではなく、ひざまずいて自分のポットを拾います。