1

以下のプログラムを見てください。

#include <iostream>;

using namespace std;

class T 
{
public:
    int a;
    T() {a = 10; cout << "constructor" << endl;}
    ~T() {cout << "destructor" << endl;}
};


int main()
{
    T * ptr1 = new T;
    cout << hex << ptr1 << endl;
    delete ptr1;
    cout << "=======" << endl;

    T * ptr2 = new T[3];
    cout << hex << ptr2 << endl;
    delete [] ptr2;

    return 0;
}

T に 3 つの要素があり、これら 3 つの要素のメモリをすべて解放する方法を知り、最初の要素のアドレスしか保持していないdelete [] ptr2と思います。ptr2のメカニズムは何ですか?割り当てられた要素のサイズなど、他の情報を保持してdelete[]いますか?ptr2

4

0 に答える 0