2016 - 2024

感恩一路有你

delete释放指针 C 如果类中有一个指针数据成员,而我没有用new。析构函数要不要delete?

浏览量:2936 时间:2021-03-11 08:38:00 作者:admin

C 如果类中有一个指针数据成员,而我没有用new。析构函数要不要delete?

C无论是哪种数据,是否删除都取决于空间是否分配了新的。

1. 指向由函数脉冲定义的局部变量的指针。如果是局部变量,则不需要删除;

2。如果类中有指针数据成员,并且没有使用new,则析构函数不需要删除。在类或函数中,只要int*和char*不是新的,就不需要释放它们。系统会自动释放他们占用的内存,只有新的才会手动删除。原理:int*和char*是存在于堆栈上的局部变量,例如堆栈上的int*PP,P的值也是堆栈的地址。但当int*P=newint时,P在堆栈上。但是P的值是一个地址,它是堆上的一个地址。如果不删除P,地址会一直被占用,不能被其他对象使用,所以我们需要在地址用完时释放地址。因此堆栈空间将自动释放,而堆空间必须手动释放。

C delete指针数组的问题?

在C编程中删除指针数组时,需要同时删除数组成员指针指向的内存。

有两种常见的方法。一种是在数组名前加上[]符号,格式是删除数组名。一种是遍历数组成员并逐个删除。不同的形式有相同的效果。小编建议第一条路。

此外,删除指针后,建议将指针设置为null。该函数的作用是防止下次使用时出现指针故障,这通常称为野生指针。

良好的编码习惯是成功的一半。我希望我的回答能对这个问题有所帮助。

delete释放指针 delete指针 delete删除数组

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。