ヒープに 2 つのアイテムがあるとします。
Foo *f = new Foo;
Foo *g = new Foo[42];
そして、ポインターを受け取る関数がありFoo、その関数内で次を実行する必要があるとしますdelete。
void bar(Foo *p) {
// some stuff
delete p;
}
この関数は、次のように呼び出すことができます。
bar(f); // passing a pointer to a Foo object on the heap
bar(g); // passing a pointer to an array on the heap
とで割り当てられたメモリをそれぞれ解放するために と を使用する必要があることdelete[]を認識しています。ただし、関数は、そのパラメーターがまたはで割り当てられているかどうかを認識していないため、どのようにこの関数を適切に機能させることができますか?deletenew[]newpnewnew[]deletedelete[]