溫馨提示×

C++ reset對指針影響

c++
小樊
100
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女