当自定义类型提供了析构函数的时候,不能这么用。理由是这样的,当自定义类型提供了析构函数的时候,内存会为它提供四个字节,记录对象的个数。这个时候如果用delete []p,编译器会从这个位置减去4个字节的地方开始释放内存,这样容易产生越界,造成delete[]p失败。
当自定义类型提供了析构函数的时候,不能这么用。理由是这样的,当自定义类型提供了析构函数的时候,内存会为它提供四个字节,记录对象的个数。这个时候如果用delete []p,编译器会从这个位置减去4个字节的地方开始释放内存,这样容易产生越界,造成delete[]p失败。