我使用 delete []p 时,会发生堆损坏。
Rectangle *p[3];
for (int i = 0; i<3; i++)
p[i] = new Rectangle();
p[0]->set(3, 4);
p[1]->set(10, 8);
p[2]->set(5, 6);
for(int i=0; i < 3; i++)
cout << "Area is " << p[i]->area() << endl;
delete []p;
在我将 delete [] 更改为
for (int i = 0; i<3; i++)
delete p[i];
它有效,但为什么我不能使用 delete []p?delete []p 是否只删除 p[0] 以及 [] 在 delete []p 中的含义是什么?