温馨提示×

C++ reset对指针影响

c++
小樊
113
2024-07-17 19:06:49
栏目: 编程语言

在C++中,reset()函数用于将指针重置为nullptr或者指向另一个对象。当调用reset()函数时,原来指针所指向的对象会被释放,然后指针会被重置为nullptr或者指向新的对象。

例如:

#include <iostream> #include <memory> int main() { std::shared_ptr<int> ptr(new int(10)); std::cout << *ptr << std::endl; // 输出 10 ptr.reset(new int(20)); std::cout << *ptr << std::endl; // 输出 20 ptr.reset(); if (ptr == nullptr) { std::cout << "ptr 已重置为 nullptr" << std::endl; } return 0; } 

在上面的示例中,通过reset()函数将指针ptr的值重置为了一个新的int对象的地址,然后再次调用reset()将指针ptr重置为nullptr。reset()函数会释放原来指针所指向的对象,所以在调用reset()之后,原来指针所指向的对象会被销毁。

0