c++ 指针delete
作者:野牛程序员:2023-08-07 10:51:27 C++阅读 2699
在C++中,使用delete
运算符可以释放通过new
运算符动态分配的内存,从而销毁对象并释放内存。这样可以防止内存泄漏,即释放不再使用的动态分配的内存。
以下是使用delete
运算符释放指针所指向对象内存的示例:
class MyClass { public: MyClass() { std::cout << "Constructor called." << std::endl; } ~MyClass() { std::cout << "Destructor called." << std::endl; } }; int main() { MyClass* ptr = new MyClass(); // 使用new运算符动态创建对象 // 使用指针ptr指向的对象 // ... delete ptr; // 使用delete运算符释放对象内存 ptr = nullptr; // 将指针设置为空,避免成为悬挂指针 return 0; }
在上述例子中,定义了一个名为MyClass
的类,该类有一个构造函数和一个析构函数。在main()
函数中,使用new
运算符动态创建了一个MyClass
对象,并将其地址赋值给指针ptr
。然后,使用指针ptr
访问对象,最后通过delete
运算符释放了对象的内存。注意,释放对象后最好将指针设置为空,避免成为悬挂指针。
需要特别注意的是,只有通过new
运算符动态分配的内存才能使用delete
运算符释放。对于其他情况,如栈上分配的对象或者指向静态对象的指针,不应使用delete
运算符。使用delete
运算符释放非动态分配的内存会导致未定义的行为。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:少儿编程之 c++定义指针
- 下一篇:c++用指向指针的指针的方法