我在做将rgb转换成ycbcr时遇到问题:
for (int i = 0,j = 0;i < image.biHeight;i++)
{
*(*(m_ImageY+i)+j) = float(0.299*pSrc[i][j] + 0.587*pSrc[i][j+1] + 0.114*pSrc[i][j+2]);
     这里m_ImageY是一个二级指针,当前地址有效。右边pSrc也是二维指针,地址有效且持有有效值。
     当程序执行到这里时,出现错误: acess violation. watch窗口中对
    *(*(m_ImageY+i)+j)求值出现表达式无法求值错误。     用tc做了一下,上式左边是可以的,为何在vc里不行呢。

解决方案 »

  1.   

    我已经对m_ImageY进行初始化了,在类的初始化涵0数里。其实现是这样,读入一个位图,就以位图的width*heigth*sizeof(float)大小申请一块内存。
    当运行到上面提到的程序行时,m_ImageY是有效指针。
      

  2.   

    建议
    *(*(m_ImageY+i)+j)
    改为
    m_ImageY[i][j]============================================================================
    提问题时要在标题中简明扼要的说明                    给我发信息请附带原帖地址
    http://www.betajin.com/alphasun/index.htm           
    http://alphasun.18en.com/                    http://shakingtoolkit.9126.com/
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  3.   

    *(*(m_ImageY+i)+j)求值出现表达式无法求值错误。这样做干什么
    *(*(m_ImageY + i * width + j))
      

  4.   

    谢谢大家,问题找到了,原来是m_ImageY虽持有值,但这个值当前是错误的。来者有分,谢谢。