网上看到这样一段代码:
#include <iostream>
using namespace std;
struct Base
{
Base() {cout<<"Base"<<endl;}
virtual ~Base() {cout<<"~Base"<<endl;}
int i;
};
struct Der : public Base
{
Der() {cout<<"Der"<<endl;}
virtual ~Der() {cout<<"~Der"<<endl;}
int it[10];
};
int main()
{
Base *bp = new Der;
Base *bq = new Der[5];
delete bp;
delete[] bq;
}
运行到delete[] bq时会产生EXC_BAD_ACCESS信号而core掉。