Using delete [] p will damage the heap.
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;
After I changed delete [] to
for (int i = 0; i<3; i++) delete p[i];
This works, but why can't I use delete [] p? Delete [] p only deletes p [0] and what does [] mean in delete [] p?
source share