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

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

最新推荐

热门点击