Leetcodeが質問のブラッシング中にメモリアクセスエラーを検出しました

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を決定しないと、境界外にアクセスする可能性があります。
これは基本的な間違いであり、あまりにも少ない練習で自分を責め、バグに敏感ではなく、ひざまずいて自分のポットを拾います。

元の4件の記事を公開 いいね1 訪問数84

おすすめ

転載: blog.csdn.net/weixin_38196841/article/details/104245029