#include
class Frames
{
public:
int len;
int *begFrames;
int *endFrames;
Frames(int n);
~Frames();
int printFrames();
};
Frames::Frames(int n)
{
len = n;
begFrames = new int[n];
endFrames = new int[n];
}
Frames::~Frames()
{
if (begFrames != NULL)
{
delete [] begFrames; //执行到这里的时候会报错
cout << "destructor begFrames" << endl;
}
if (endFrames != NULL)
{
delete [] endFrames;
cout << "destructor endFrames" << endl;
}
cout << "destructor " << this << endl;
}
Frames::printFrames()
{
printf("begFrames:\n");
for (int i=0; i
printf("\nendFrames:\n");
for (i=0; i
return 0;
}
int main()
{
int beg[4]={1,2,3,4};
int end[4]={6,7,8,9};
Frames *arrFrames=new Frames(4);
arrFrames->begFrames=beg;
arrFrames->endFrames=end;
arrFrames->printFrames();
delete arrFrames;
return 0;
}
注释掉析构函数中的两个delete就没报错,这是什么原因?请问怎么改?