2016-04-28 14 views
0

実行時に「文字列エラーの読み込みエラーが発生しました。そして、try catchで処理していません。文字列の文字の読み込み中にエラーが発生しました - VC++

void process(const BYTE* pBodyIndexBuffer){ 
m_pCoordinateMapper->MapCameraPointToDepthSpace(m_pJoints[JointType_ShoulderLeft].Position, &p); 
      dx = static_cast<int>(p.X + 0.5); 
      dy = static_cast<int>(p.Y + 0.5); 
      try 
      { 
       if (p.X < 500 && p.X >= 0 && p.Y <= 410 && p.Y >= 0) 
       { 
        pPoint = pBodyIndexBuffer[dx + (dy*cDepthWidth)]; 
        while (1) { 
         if (pPoint == 0xff) break; 
         pPoint = pBodyIndexBuffer[dx + (dy * cDepthWidth)]; 
         dx -= 1; 
         dy -= 1; 
         p.X -= 1; 
         p.Y -= 1; 
         OutputDebugString(L"Moved \n"); 

        } 
       } 

       m_pBodyEdgeswidth[ShoulderLeft] = getDistance(m_pJoints[JointType_ShoulderLeft].Position, p, distance); 
      } 
      catch (const std::exception&) 
      { 
       OutputDebugString(L"Error Occured"); 
      } 
} 

私はコードの一部を提供しました。 はここ

enter image description here

この問題を解決する方法を教えてください、私が直面しています問題です。

しかし、エラーが発生することなく実行されることがあります。 どうすればいいですか、

BYTE *bodyIndex = NULL; 
cm->getBodyIndexStream(&bodyIndex); 
if(bodyIndex) process(bodyIndex); 

ありがとうございます。

答えて

1

有効なNULL以外のバッファをgetBodyIndexStreamに渡す必要があります。 nullバッファを渡しています。これはコンパイラを満たしており、実行時には必ず失敗します。それは次のようなものです:

int* ptr = NULL; 
// Set value 
*ptr = 120; // crash 
関連する問題