头文件中定义:
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;
}
}
把InitDepthBuffer函数的第4行删掉,你又定义个zBuffer干啥,得用成员变量啊
你这里又定义了一个临时变量,分配空间,但成员变量还是空的,到析构时肯定要出错啊