2014-02-20 2 views
1

나는 다음과 같은 기능이 있습니다C++ DOUBLE * 반환하고 다시는

개인을 : 나는 함수의 끝에서 변수 _X를 재설정하는 경우

, 그것은 또한 변경
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; 
} 

내 문제가 있다는 변수 uX.

누군가가 올바르게 수행하는 방법을 알려 줄 수 있습니까? 참조를 전달하는 대신 _X 복사본을 만들어야합니까?

감사합니다.

+1

나는 "참조를 전달하는 대신 uX 사본을 만들어야 만합니까?"라고 생각합니다. – SubSevn

+0

왜 'DOUBLE'을 모두 덮고 있습니까? 당신은 진지하게 그것에 대한 매크로가 있습니까? 그것은 무엇으로 확장됩니까? – user2357112

+0

@ user2357112 무슨 뜻입니까? – tmighty

답변

1

예, 매개 변수로 포인터를 지정했으며 포인터가 가리키는 위치를 다시 지정하고 다른 변수의 주소로 설정합니다.

시도 뭔가 같은 :

*uX = _X;

이 메모리에 _X의 값을 복사합니다은 uX에 의해 지적했다.

그러면 _X을 원하는대로 다시 지정할 수 있으며 uX이 가리키는 값은 변경되지 않습니다.