c++用指向指针的指针的方法
作者:野牛程序员:2023-08-07 10:54:54 C++阅读 2632
C++中可以使用指向指针的指针,也就是二级指针,用于在函数中修改指针本身所指向的指针地址,从而达到改变原始指针的目的。指向指针的指针的声明和使用如下所示:
#include <iostream> void modifyPointer(int** ptr) { int* newPtr = new int; // 创建一个新的int类型变量的内存空间 *newPtr = 42; // 对新的变量赋值 delete *ptr; // 释放原始指针所指向的内存空间 *ptr = newPtr; // 将原始指针指向新的内存空间 } int main() { int* ptr = nullptr; // 定义一个指向int类型变量的指针,并初始化为nullptr modifyPointer(&ptr); // 将指向指针的指针作为参数传递给函数,修改原始指针 if (ptr != nullptr) { std::cout << "Modified value: " << *ptr << std::endl; // 输出修改后的值 delete ptr; // 释放指针指向的内存空间 ptr = nullptr; // 将指针置为nullptr,避免成为悬挂指针 } return 0; }
在上述示例中,定义了一个modifyPointer
函数,它的参数是指向指针的指针int** ptr
。在函数中,创建了一个新的int
类型变量的内存空间,并对其赋值为42。然后,释放原始指针*ptr
所指向的内存空间,并将原始指针指向新的内存空间。
在main
函数中,定义了一个指向int
类型变量的指针ptr
,并初始化为nullptr
。然后,调用modifyPointer
函数,并将&ptr
作为参数传递给函数,这样函数中对原始指针的修改会影响到main
函数中的指针。最后,我们输出修改后的值,并释放指针指向的内存空间。
需要注意的是,在使用指向指针的指针时,要确保原始指针不为野指针或者nullptr
,否则对指向指针的指针进行操作可能导致未定义的行为。同时,要确保释放内存时只释放一次,避免产生内存泄漏。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++ 指针delete
- 下一篇:c++生成指向类对象的指针