delete[] 释放空间的问题
m_CellLayerOne = new stCell[n];
if( m_CellLayerOne )
{
delete[] m_CellLayerOne; //出错
m_CellLayerOne = NULL;
}
运行到第三句时报错了,弹出个对话框,说我的程序有问题要关闭
[解决办法]
stCell是什么类型?
[解决办法]
看不出有什么问题,如果把这句注释掉呢?试一下运行的结果,如果再出错,错误就应该在其他地方.
[解决办法]
应该不是这儿有错.完全看不出来有什么问题.
可能是你的那个类型的析构函数~stCell写的有问题.
[解决办法]
1、stCell是什么类型?结构?
2、试试:
m_CellLayerOne = new stCell[100];
if( m_CellLayerOne!=NULL )
{
delete[] m_CellLayerOne; //出错
m_CellLayerOne = NULL;
}
[解决办法]
如何申明 m_CellLayerOne
[解决办法]
#include <iostream.h>
struct stCell{
unsigned Pic:6;
unsigned Num:14;
unsigned res:4;
};
void main()
{
int n=10;
stCell * m_CellLayerOne = new stCell[n];
if( m_CellLayerOne )
{
delete[] m_CellLayerOne; //出错
m_CellLayerOne = NULL;
}
}
这个程序编译和运行都不会报错,是不是m_CellLayerOne的定义不对?
[解决办法]
这部分代码不会有问题哦!
[解决办法]
rebuild all,这句代码理论上没有问题
[解决办法]
我运行的时候没有任何错误啊
[解决办法]
路过.