struct line_stru
{
int line_num;
float *line_point;
};line_stru drw_line;CList <line_stru ,line_stru > drw_line1;
先分配空间
line_num=30;
drw_line.line_point=new float [line_nmu*2];
drw_line1.AddTail(drw_line) ;
.....
不用delete [] drw_line.line_point释放空间
可不可以用下面的方法释放line.point所占用的空间
drw_line1.RemoveAll();
{
int line_num;
float *line_point;
};line_stru drw_line;CList <line_stru ,line_stru > drw_line1;
先分配空间
line_num=30;
drw_line.line_point=new float [line_nmu*2];
drw_line1.AddTail(drw_line) ;
.....
不用delete [] drw_line.line_point释放空间
可不可以用下面的方法释放line.point所占用的空间
drw_line1.RemoveAll();
struct line_stru
{
int line_num;
float *line_point;
line_stru()
{
line_point = 0;
}
~line_stru()
{
delete []line_point;
}
};
line_stru drw_line;
然后RemoveAll
delete [] drw_line.line_point释放吗? 那drw_line1.RemoveAll()做什么用.
POSITION ik=NULL;
num=drw_line1.GetCount();
ik=drw_line1.GetHeadPosition();
try
{
for(i=0;i<num;i++)
{
ik=drw_line1.FindIndex(i);
drw_line=drw_line1.GetAt(ik);
delete drw_line.line_point;
drw_line1.RemoveAt(ik);
}
运行出错,怎么回事
struct line_stru
{
int line_num;
float *line_point;
~line_stru();
};line_stru drw_line;line_stru::~line_stru()
{
if (line_point)
delete []line_point;
line_point=NULL;
}