new や delete も実はとても安全で単純で理解し易い。
void func()
{
 BYTE *p = new BYTE[100];
 (p に対する処理);
 delete [] p;
}
のように単純明確で、最初に new、最後に delete を書くだけ。
そして複雑な場合のケアレスミスを防ぐため、class のコンストラクタと
デストラクタが発明された。それもとても簡単で
class CSome {
protected:
 BYTE *p;
public:
 CSome() { p = new BYTE[100];}
 ~CSome() { delete [] p;}
};
と書くだけでいい。これは定型みたいなもので、何も難しいことは無い。