读取字符串字符时出错 - 访问冲突错误C ++

时间:2016-05-03 05:09:07

标签: c++ pointers kinect

我在C ++中使用Kinect v2相关项目,而我不能在函数外部使用Depth Frame(BYTE *)。

我觉得运气好几分钟。

然后我遇到了错误:

  

读取字符串

的字符时出错

和访问冲突错误,并且在某些时间点没有为kinect20.dll加载符号。

这是我调用值的方法。

BYTE* bodyIndex = new BYTE[512*424]; // initialization



HRESULT frameGet(){
//Initialization method if success
    hr = pDepthFrame->AccessUnderlyingBuffer(&m_nDepthBufferSize, &bodyIndex); //Kinect dll method
    prints(depth[300]); // Prints the value every time
    return hr;
}

HRESULT getDepthFrame(){
   if frameGet is success
   prints(bodyIndex[300]); // throws error reading character of string
   return hr; 
}

任何人都可以解释我每次都可以访问bodyIndex数据。

在发布完整代码时我没有得到任何响应,因此需要c ++如何工作的逻辑。

如果假设是正确的,深度数据有时会被kinectdll清理干净,因此它会反映出来。

我尝试使用memcpy错误仍然存​​在。

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据https://msdn.microsoft.com/en-us/library/microsoft.kinect.kinect.idepthframe.accessunderlyingbuffer.aspx

您不需要分配内存。

  

获取指向深度帧数据的指针。

public:
HRESULT AccessUnderlyingBuffer(
         UINT *capacity,
         UINT16 **buffer
)
     

buffer类型:UINT16 [out]当此方法返回时,包含   指向深度帧数据的指针。

如果我正确理解规范,您在访问之前始终会调用AccessUnderlyingBuffer()