当前位置:首页 C++ > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击