比如我定义了一个结构体
struct VectorInf
{
int a;
char b[09];
}
VectorInf *pVectorInf;
pVectorInf=new VectorInf[50];删除能不能用delete pVectorInf ;阿
但是这样还是出现问题阿,运行时间长了,就出问题了。
struct VectorInf
{
int a;
char b[09];
}
VectorInf *pVectorInf;
pVectorInf=new VectorInf[50];删除能不能用delete pVectorInf ;阿
但是这样还是出现问题阿,运行时间长了,就出问题了。
如果数组没越界的话没问题
肯定没问题
用delete pVectorInf只是删除了第一个元素,并没有删除整个数组
if(pVectorInf!=NULL)
{
delete [] pVectorInf;
pVectorInf=NULL;
}
//if(pFrameInf!=NULL) delete [] pFrameInf;
if(pTexCoordInf!=NULL)
{
delete [] pTexCoordInf;
pTexCoordInf=NULL;
}
if(pMeshInf!=NULL)
{
delete [] pMeshInf;
pMeshInf=NULL;
} if(pTexture!=NULL)
{
delete pTexture;
pTexture=NULL;
}
但是还是出现问题阿,运行几次就不行了,是不是new VectorInf[500000];这样长得内存
一运行就很慢阿。
pVectorInf = NULL不赋值为 NULL ,如果其他地方再次使用会成为野指针。
这是良好编程习惯之一。还有在使用指针前要判断是否为null。
最好不要频繁new/delete,这样会减慢系统运行速度,且容易出错!
尽可能的改进算法,优化程序。
如果定义变量所需要内存不多的话,程序很多地方可以使用数组的地方尽量使用它!