delete の使用
delete 演算子には 2 つの構文バリアントがあります。単一のオブジェクトを対象とするものと、オブジェクトの配列を対象とするものです。 次のコードは、これらがどのように違うかを示します。
// expre_Using_delete.cpp
struct UDType
{
};
int main()
{
// Allocate a user-defined object, UDObject, and an object
// of type double on the free store using the
// new operator.
UDType *UDObject = new UDType;
double *dObject = new double;
// Delete the two objects.
delete UDObject;
delete dObject;
// Allocate an array of user-defined objects on the
// free store using the new operator.
UDType (*UDArr)[7] = new UDType[5][7];
// Use the array syntax to delete the array of objects.
delete [] UDArr;
}
オブジェクトに対して配列形式の削除 (delete [ ]) を使用した場合、および配列に対して非配列形式の削除を使用した場合は、未定義の結果が生成されます。