我可以修改作为参数传递的指针的目标吗?

dan*_*jar 1 c++ pointers scope reference function

函数是否可以更改作为参数传递的指针的目标,以使效果保持在函数外部?

void load(type *parameter)
{
    delete parameter;
    parameter = new type("second");
}

type *pointer = new type("first");
load(pointer);
Run Code Online (Sandbox Code Playgroud)

在这个最小的例子中,是否会pointer指向第二个分配对象?如果没有,我怎么能得到这种行为?

更新:为了澄清我的意图,这里是我将使用的代码,如果参数将是普通类型而不是指针.在这种情况下,我只会使用引用.

void load(type &parameter)
{
    parameter = type("second");
}

type variable("first");
load(&variable);
Run Code Online (Sandbox Code Playgroud)

这很容易,但我尝试用指针做同样的事情.

sta*_*ust 9

没有.

parameter将得到pointer这种情况下的价值副本.所以这是一个新的变量.您对其所做的任何更改仅在功能范围内可见.pointer保持不变.

你必须the pointer通过参考传递

void load(type *& parameter)
                ^
{
Run Code Online (Sandbox Code Playgroud)