私は指摘されているメモリを解放する適切な方法を理解しようとしています。この場合、ポインタは構造体の新しいインスタンスを指し示します。例はポインタが指している構造体のデータを削除するための適切な使い方
下に示されている構造は次のようである:
struct MyData
{
unsigned short int MYID;
unsigned short int MYCMD;
};
定義は以下です。
MyData* injdataRx;
myDataPtr = new MyData; // create new instance
...ポインタが指している値に値を読み込むいくつかの処理を行います。フィールド。
もし私がその構造体で終わったら、ポインタが指しているもの(割り当てられた領域)が解放されていることを確認したいなら、私はこれを行います。
delete (myDataPtr);
はそれのように「新しい」により作成された空きメモリがmyDataPtrは、それがのsizeofのMyDataを解放することのMyDataを型へのポインタであるので、知っていることをしていますか?それはどうなるの?
これを明確にするための助けとなります。
"*これは、myDataPtrがMyDataのサイズを解放するポインタであるため、myDataPtrがMyDataのサイズを解放することを知っているので、「new」によって作成されたメモリを解放しますか?*"はい、オブジェクトのデストラクタを呼び出します。 – ildjarn
それだけです。難しい部分は常にそれを削除することを覚えています。スマートポインタを使用する。 – Duck