Valgrind:
この質問は、
問題:
#include <iostream> int main() { return 0; }
答え:
Valgrind 警告はバグではなく、特徴。 C 標準ライブラリの多くの実装では、独自のメモリ プール アロケータが使用されます。破棄されたオブジェクトのメモリはすぐには解放されず、OS に戻されませんが、後で再利用できるようにプール内に保持されます。プログラムの終了時にメモリ プールも解放されないため、Valgrind はメモリがまだ到達可能であると報告します。
解決策:
プール キャッシュを無効にする方法はいくつかあります。そして、STL に malloc を強制的に使用させ、メモリを解放します。可能:
g++ -D__USE_MALLOC ...
export GLIBCPP_FORCE_NEW=1
export GLIBCXX_FORCE_NEW=1
追加メモ:
以上がValgrind が `` を使用した簡単なプログラムでまだ到達可能なメモリを報告するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。