删除动态数组上没有方括号的内容
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[]
应该改用。
考虑:
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[]
应该改用。