class Test
{
public:
Test() { std::cout << "Test()" << std::endl; }
~Test() { std::cout << "~Test()" << std::endl; }
void SetData(int i)
{
data = i;
}
int data;
};
int main()
{
Test *p = new Test[2];
p[0].SetData(11);
p[1].SetData(12);
int* ptr = (int*)p - 1;
*((int*)p-1) = 3; //可见类/结构体大小的描述就在开始指针的后4个字节处
delete [] p;
}
{
public:
Test() { std::cout << "Test()" << std::endl; }
~Test() { std::cout << "~Test()" << std::endl; }
void SetData(int i)
{
data = i;
}
int data;
};
int main()
{
Test *p = new Test[2];
p[0].SetData(11);
p[1].SetData(12);
int* ptr = (int*)p - 1;
*((int*)p-1) = 3; //可见类/结构体大小的描述就在开始指针的后4个字节处
delete [] p;
}