イントロダクション C++ のメモリ解放演算子には delete と delete [] の2つがあります。まず、「そんなこと初めて聞いたよ」という人のためにこの2つの違いを簡単に説明します。分かってる人は次の段落は読み飛ばして下さい。 簡単に言うと、delete は new で確保したものを削除するためのもので、delete [] は new [] (配列の割り当て)で確保したものを削除する為のものです。だから、配列を削除する時は delete [] を使わなくてはなりません。配列に delete をかけても最初の要素しか削除されず(デストラクタも呼ばれず)、リソースリークが起こってしまいます。 何故こんなめんどいことになってるのか では、何故 delete と delete [] の2つを使い分けなくてはならないのでしょうか。配列に delete をかけたら自動的に内部で delete