删除动态数组上没有方括号的内容

Delete without square brackets on dynamic array

考虑:

int *p = new int[10];

linked reply 状态:

NOTE: One can free the memory even by delete p;, but it will free only the first element memory.

这听起来 delete p 没问题。这个对吗?我希望 delete p 会导致未定义的行为...

不行,说法不对

在来自 new[] 的指针(或者实际上,任何不来自 new 的指针)上使用 delete 的行为是未定义的。 delete[] 应该改用。