gpt4 book ai didi

C++ DOUBLE* 返回然后重置

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:27 27 4
gpt4 key购买 nike

我有以下功能:

私有(private):

bool _bFixation;
bool _bBlink;
DOUBLE _X;
DOUBLE _Y;


int CMYCLASS::getData(VARIANT_BOOL* uEvent1, VARIANT_BOOL* uEvent2, DOUBLE* uX, DOUBLE* uY, LONG* pVal)
{
if (_bEvent1)
{
*uEvent1=VARIANT_TRUE;
}
else
{
*uEvent1=VARIANT_FALSE;
}
if (_bEvent2)
{
*uEvent2=VARIANT_TRUE;
}
else
{
*uEvent2=VARIANT_FALSE;
}

uX=&_X;
uY=&_Y;

//reset

_bEvent1=false;
_bEvent2=false;
_X=0;
_Y=0;

return 0;
}

我的问题是,如果我在函数末尾重置变量 _X,它也会更改变量 uX。

有人能告诉我如何正确地做到这一点吗?我是否必须复制 _X 而不是传递引用?

谢谢!

最佳答案

是的,您已经获得了一个指针作为参数,并且您正在将指针指向的位置设置为您随后重新分配的另一个变量的地址。

尝试这样的事情:

*uX = _X;

这会将 _X 的值复制到 uX 指向的内存中。

然后您可以将 _X 重新分配给您想要的任何值,它不会更改 uX 指向的值。

关于C++ DOUBLE* 返回然后重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916420/

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