実行中に多くのメモリを消費する関数 Locate を持つ c++-cli クラス Locator があります。実行の最後に、ポインターを解放することにより、ほとんどのメモリが関数内で解放されますが、まだ割り当てが解除されていないメモリがいくつかあり、ループでプログラムを連続して実行するとスタックします。毎回関数の最後にデストラクタ/コンストラクタを使用して割り当てられたすべてのメモリを完全に削除する方法はありますか?
public ref class Locator
{
public:
Locator() { }
~Locator() { }
Dictionary<String^, array< Byte >^>^ Locate(Dictionary<String^, String^>^ imgParms)
{ ..... }
private:
int m_HP;
int main ()
{
Locator r;
Dictionary<String^,String^>^ myDictionary = gcnew Dictionary<String^,String^>();
Dictionary<String^,List<array<Byte>^>^>^ myResult1 = gcnew Dictionary<String^,List<array<Byte>^>^>();
myResult1=r.Locate(myDictionary,0);
return 0;
}