MLK.MIGHT

メモリ リークの可能性があります

プログラムは以前に割り当てられたメモリを解放しませんでした。動的メモリへのリファレンスは、一部のパスで、この時点で失われます。

脆弱性とリスク

メモリリークは、アプリケーションで余分なメモリを消費させます。これによって他のアプリケーションが使用できるメモリ量が減り、結果的に、オペレーティングシステムにページングを開始させ、システム速度を低下させます。重大な場合、アプリケーションがメモリ制限に達して、クラッシュする可能性があります。

例 1

コピー
  void foobar(int i)
  {
    char* p = new char[10];
    if(i) {
      p = 0;
    }
    delete[] p;
  }

Klocwork は 5 行目についてメモリリークレポートを生成し、3 行目で関数 'new[]' により割り当てられ、'p' に保存されている動的メモリが、5 行目で失われることがあることを示します。