qq_58666039 2021-10-28 19:57 采纳率: 50%
浏览 31

计算机图形学MFC中zbuffer算法调试时的debug error(有没有大手子解答一下)

头文件中定义:

double **zBuffer;

源文件中的实现:

void CZBuffer::InitDepthBuffer(int w,int h,double zDepth)
{
this->w=w,this->h=h;
    double **zBuffer;
    zBuffer=new double*[w];
    for (int i=0;i<w;i++)
    {
        zBuffer[i]=new double[h];
    }
    for (int i=0;i<w;i++)
    {
        for (int j=0;j<h;j++)
        {

            zBuffer[i][j]=zDepth;
        }
    }
}

析构函数中的释放内存:


CZBuffer::~CZBuffer(void)
{
    for (int i=0;i<w;i++)
    {
        delete[] zBuffer;
        zBuffer[i]=NULL;
    }
    if (zBuffer!=NULL)
    {
        delete zBuffer;
        zBuffer=NULL;
    }
}
  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-28 19:59
    关注

    把InitDepthBuffer函数的第4行删掉,你又定义个zBuffer干啥,得用成员变量啊
    你这里又定义了一个临时变量,分配空间,但成员变量还是空的,到析构时肯定要出错啊

    评论

报告相同问题?

问题事件

  • 创建了问题 10月28日