函数能否更改作为参数传递的指针的目标,以便效果保持在函数之外?
void load(type *parameter)
{
delete parameter;
parameter = new type("second");
}
type *pointer = new type("first");
load(pointer);
在这个最小的例子中,pointer
会指向第二个分配对象吗?如果没有,我怎样才能得到这种行为?
更新:为了阐明我的意图,如果参数是普通类型而不是指针,这里是我将使用的代码。在这种情况下,我会简单地使用引用。
void load(type ¶meter)
{
parameter = type("second");
}
type variable("first");
load(&variable);
这很简单,但我尝试用指针做同样的事情。
最佳答案
没有。
在这种情况下,parameter
将获得 pointer
值的拷贝。所以它是一个新的变量。您对其所做的任何更改仅在函数范围内可见。 指针
保持不变。
你必须通过引用传递指针
void load(type *& parameter)
^
{
关于c++ - 我可以修改作为参数传递的指针的目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16276176/