做
#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
进行更改),就可以调用delete[]
。
(请注意,对于new
和delete
,指针可以是多态相关的,但对于new[]
和delete[]
则并非如此)。