C ++ DOUBLE *返回然后重置

我有以下function:

私人的:

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; } 

我的问题是,如果我重置variables_X在函数的结尾,它也改变variablesuX。

有人可以告诉我如何正确地做到这一点? 我是否必须复制_X而不是传递参考?

谢谢!

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

尝试像这样:

*uX = _X;

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

然后,您可以重新分配_X成为您想要的任何内容,并且不会更改由uX指向的值。