Code Bye

指针变量的释放

定义一个指针变量:
double**  Ptr = new double*[10];
for(int i = 0; i < 10; i++)
{
Ptr[i] = new double[5];
}
释放指针变量的时候是不是如下:
for(int i = 0; i < 10; i++)
{
delete [] Ptr[i];
}
delete [] Ptr;
这样对不对?谢谢!
还有一个疑问,假如在中声明对象时,用了new什么时候释放这个指针呢?谁来释放呢?
vc之际释放,还是需要编写函数,本人释放,将释放函数写在中间(如析构函数)。
也就是说:
class animal
{
private:
double*  Num = new double[5];
public:
~animal();
}
animal::~animal()
{
delete []Num;
}
不确定想的对不对,谢谢~~~
解决方案

5

5

题主的想法是对的……

10

You are right.

10

有new就要有delete,何时释放,那就要看实际应用时的需求

5

按你说的是对的。

20

1、对的
2、通常来说,一般按照谁申请谁释放原则,中申请的不建议在外调用delete,而应在中去释放
另外假如觉得管理麻烦,可以考虑使用智能指针

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明指针变量的释放