c++ - 函数不会更改传递的指针 C++

标签 c++ function pointers

我有我的函数,我正在那里填充targetBubble,但是调用这个函数后它没有被填充,但是我知道它是在这个函数中填充的,因为我有输出代码。

bool clickOnBubble(sf::Vector2i & mousePos, std::vector<Bubble *> bubbles, Bubble * targetBubble) {
    targetBubble = bubbles[i];
}

我正在像这样传递指针

Bubble * targetBubble = NULL;
clickOnBubble(mousePos, bubbles, targetBubble);

为什么它不起作用?

最佳答案

因为您正在传递指针的拷贝。要更改指针,您需要这样的东西:

void foo(int **ptr) //pointer to pointer
{
    *ptr = new int[10]; //just for example, use RAII in a real world
}

void bar(int *& ptr) //reference to pointer (a bit confusing look)
{
    ptr = new int[10];
}

关于c++ - 函数不会更改传递的指针 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11842416/

相关文章:

c++ - 在windows上使用zlib编译boost 1.62/1.63

javascript - 如何创建 String 原型(prototype)克隆并为其分配自定义函数

c++ - (c++) 检查指针数组的空值

c - 为什么我的结构体指针忘记了字符串?

c - 如何在 C 中存储结构指针以便数据不丢失?

c++ - 打印关键点描述符矩阵 opencv 的值

c++ - 是否有大型数据容器的基准?

c++ - 为什么会出现段错误以及如何解决它

reactjs - react 按键输入

header 或源代码中的 C++ 函数修饰符?快速引用