在C++中,删除指向指针的指针通常是通过使用delete
操作符来实现的。以下是一个简单的示例,说明如何删除指向指针的指针:
#include<iostream>
int main() {
int* p1 = new int(42);
int** p2 = &p1;
std::cout << "Value of p1: " << *p1<< std::endl;
std::cout << "Value of p2: " << **p2<< std::endl;
delete p1;
p1 = nullptr;
std::cout << "Value of p1 after deletion: " << p1 << std::endl;
std::cout << "Value of p2 after deletion: " << *p2<< std::endl;
return 0;
}
在这个示例中,我们首先创建了一个整数指针p1
,并将其指向一个新分配的整数值42。然后,我们创建了一个指向指针的指针p2
,并将其设置为指向p1
。
在删除p1
之前,我们可以看到p1
和p2
都指向相同的整数值。但是,在我们删除p1
之后,p1
的值变为nullptr
,而p2
仍然指向已删除的内存地址。
请注意,在删除指针之前,应确保已经释放了所有指向该指针的指针,以避免内存泄漏和未定义的行为。
领取专属 10元无门槛券
手把手带您无忧上云