Here is the code
int *p = new int[10];
...
delete[] p;
How does the program know how many elements were there when delete[] was called?
Suppose we inserted the following code in between:
p++;
Will the program try to free one more element? Will it just stop at the 10th element?