![](/img/trans.png)
[英]How can I check a string parameter in googlemock that is passed as void pointer
[英]Can I modify the target of a pointer passed as parameter?
函数是否可以更改作为参数传递的指针的目标,以使效果保持在函数之外?
void load(type *parameter)
{
delete parameter;
parameter = new type("second");
}
type *pointer = new type("first");
load(pointer);
在这个最小的示例中, pointer
将pointer
第二个分配对象吗? 如果没有,我如何获得这种行为?
更新:为了澄清我的意图,如果参数是普通类型而不是指针,这是我将使用的代码。 在这种情况下,我将只使用引用。
void load(type ¶meter)
{
parameter = type("second");
}
type variable("first");
load(&variable);
这很容易,但是我尝试使用指针做同样的事情。
没有。
在这种情况下, parameter
将获取pointer
值的副本。 因此,这是一个新变量。 您对其所做的任何更改仅在功能范围内可见。 pointer
保持不变。
您必须通过引用传递the pointer
void load(type *& parameter)
^
{
或者,您可以使用double
指针。
void load(type** parameter)
{
delete *parameter;
*parameter = new type("second");
}
type *pointer = new type("first");
load(&pointer);
但是由于您使用的是cpp,因此可以使用references
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.