gpt4 book ai didi

c++ - 函数内部的指针赋值

转载 作者:太空宇宙 更新时间:2023-11-04 15:16:23 26 4
gpt4 key购买 nike

我实际上无法弄清楚我在这里做错了什么。

所以基本上我有一个对象指针,我将其传递给一个函数以将其值设置为指向一个新的 Object 实例,但它似乎不起作用而且我无法解决原因。下面是我正在尝试做的代码示例。

 GetPointer(Object *pointer){
pointer = new Object();
}

in main:

Object *pointer;
GetPointer(pointer);

我也尝试过立即初始化指针,这很有效,所以我真的不明白上面的代码有什么问题。有什么建议吗?

   Object *pointer = new Object(); 

最佳答案

你应该通过引用传递你的指针

void GetPointer(Object *&pointer)
{
pointer = new Object();
}

Object *pointer;
GetPointer(pointer);

或者只返回指针:

Object* GetPointer()
{
return new Object();
}

Object *ptr = GetPointer();

或更好:

std::unique_ptr<Object> GetPointer()
{
return std::unique_ptr{new Object()};
}

auto ptr = GetPointer();

关于c++ - 函数内部的指针赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32116684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com