64,631
社区成员
发帖
与我相关
我的任务
分享
typedef int Arr[100];
Arr *p = new Arr;
delet p;
struct A
{
A()
{
cout<<"A created."<<end;
}
~A()
{
cout<<"A destructed."<<endl;
}
int val;
};
typedef A Arr[5];
A *p = new Arr;
delete [] p;
//测试结果:5次构造,5次析构,程序正常结束。
A *p = new Arr;
delete p;
//测试结果:构造5次,析构1次,接着系统响了一声警告,程序不能结束。
A *p = new Arr;
void *q=p
delete[] q;
//测试结果:构造5次,析构0次,接着系统响了一声警告,程序不能结束。
//那么是不是因为 变量由 A* 转为 void*后值改变了呢?不是的,测试发现p与q的值相等。
void *p = new Arr;
delete p;
//测试结果:与测试3相同。
delete p;
class A
{
public:
A()
{}
~A()
{
cout<<"destory"<<endl;
}
};
int main(int argc, char *argv[])
{
typedef A Arr[2];
A *p = new Arr;
delete[] p;
system("PAUSE");
return EXIT_SUCCESS;
}