比如我定义了一个结构体
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 ;阿
但是这样还是出现问题阿,运行时间长了,就出问题了。
解决方案 »
- cTreeCtrl
- 请教VC++解析XML,谢谢!
- 程序运行出错(winocc.cpp)
- 急问!
- 如何检测到Dialog的ESC事件的发生,我在OnKeyDown和WindowProc里都不行
- ◣如何利用get_activeElement得到我选中的option中的文字和值?◢
- 怎么程序实现收到其他机器通过net send命令或者netmessagebuffersend函数发过来的消息?
- 大家出一分力,为《Windows 程序设计》勘误(大家帮忙 UP~~~ )
- 关于OCX控件注册问题
- 要想让一个程序开机启动的时候就有管理员权限,除了系统服务,还有那些方法?
- 一个简单的问题?无效的描述符索引的问题
- 类里面用了timeGetDevCaps,timeBeginPeriod出现下面错误
如果数组没越界的话没问题
肯定没问题
用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,这样会减慢系统运行速度,且容易出错!
尽可能的改进算法,优化程序。
如果定义变量所需要内存不多的话,程序很多地方可以使用数组的地方尽量使用它!