数组删除指向数组的指针未指向数组的开头

时间:2017-08-02 20:23:01

标签: c++ arrays

我在一个非常旧的应用程序中遇到了一些代码我正在调试并修复它,但我不确定实际行为是什么。

例如:

char* p = new char[10];
delete[] p;

所以这是有效的,因为运行时跟踪数组的头部,当你删除[]它知道删除10个字节?至少这是我的理解。

然而,如果某些brainiac这样做:

char* p = new char[10];
p += 5;
delete[] p;

会发生什么?它应该不起作用吧?您正在尝试删除数组,但在p的当前位置,运行时无法确定您要删除的数组。

0 个答案:

没有答案