2014-01-06 2 views
-3

에 구조체를 통과 내가 뭐하는 거지입니다 :C++ : 함수 여기

구조체는 single.h 파일에 정의되어

:이 구조체는 single.cpp 파일

에 사용되는

typedef struct 
{ 
    double x,y,z; 
}PhysicalSize; 

PhysicalSize physicalSize; 
physicalSize.x = xstageStepSize; 
physicalSize.y = ystageStepSize; 
physicalSize.z = zstageStepSize; 

long SaveTIFFWithOME(wchar_t *filePathAndName, char * pMemoryBuffer, long width, long height, unsigned short * rlut, unsigned short * glut,unsigned short * blut, 
       double umPerPixel,int nc, int nt, int nz, double timeIncrement, int c, int t, int z,string * acquiredDateTime,double deltaT, 
       string * omeTiffData, AcquireSingle::PhysicalSize physicalSize)  

나는 함수를 밟았으며 모두 physicalSize.x, physicalSize.y and physicalSize.z이 올바른 값을 얻은 것으로 보입니다. 그러나, 내가 SaveTIFFWithOME()이라고했을 때, 모두 physicalSize.x, physicalSize.y and physicalSize.z은 결코 초기화되지 않는 것처럼 보입니다.

내가 어디에서 잘못했는지, 구조체를 인수로 함수에 전달하는 것이 올바른지 궁금하다. 감사.

+6

'SaveTIFFWithOME' 안에 우리를 보여주세요. – 0x499602D2

+1

@ DieterLücking : 완전히 유효한 C++입니다. 그것은 매우 관용적이지 않습니다. –

+0

비록 그것은 c struct가 아니라 C++ struct입니다. 중요한 차이 – Paranaix

답변

5

위의 코드에 아무런 문제가 없습니다.

구조가 잘 전달됩니다.

SaveTIFFWithOME이 깨졌습니다 (버퍼 오버런이 발생할 수 있음). 그렇지 않으면 결과를 잘못 해석하는 것입니다.

+0

맞습니다. 디버깅 모드에서 내 코드에서 physicalSize의 값을 볼 때 이상한 숫자가 표시됩니다. 그러나 디버깅하지 않고 프로그램을 실행하면 올바른 결과가 xml 파일에 저장됩니다. 나는 이것이 어떻게 일어나고 있는지 전혀 모른다. 내 말은 실제로 본 것을 본 것입니까? 설명이 없지만 코드는 오류없이 실행됩니다. 감사. –