C++ 删除 [] 运算符

C++ Delete [] Operator

#include <iostream>

using namespace std;

int main()
{
    float* temps = new float[10];

    float* temps2 = temps;

    delete[] temps2;

    return 0;
}

具有相同的工作原理
#include <iostream>

using namespace std;

int main()
{
    float* temps = new float[10];

    float* temps2 = temps;

    delete[] temps;

    return 0;
}

?

他们都释放了所有分配的内存吗?还是我必须删除[]原来的指针?

两个都很好。

只要指针具有完全相同的类型(允许更改 const 或从 const 更改),您就可以调用 delete[].

(请注意,对于 newdelete,指针可以是多态相关的,但对于 new[]delete[]).