首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么删除动态数组

2012-04-23 
如何删除动态数组?如:float *dt_Elevation new float[200]是 delete dt_Elevation 吗?如何保证刚好删

如何删除动态数组?
如:

float *dt_Elevation = new float[200];

是 delete dt_Elevation; 吗?

如何保证刚好删除 200个元素?
谢谢

[解决办法]
delete []dt_Elevation

申请了多少就会删掉多少。
[解决办法]
这个得看实现的

申请堆空间的时候,会有一些额外空间用于保存这块申请的空间的信息,比如大小,这样释放时便能正确释放

某种实现
free的源代码:

struct mem_control_block { 
int is_available; //这是一个标记 
int size; //这是实际空间的大小 
}

 void free(void *ptr) 

struct mem_control_block *free; 
free = ptr - sizeof(struct mem_control_block); 
free->is_available = 1; 
return; 
}
[解决办法]

探讨

delete []dt_Elevation

申请了多少就会删掉多少。

[解决办法]
new的时候带[],那么delete的时候也要带[]
new的时候不带[],那么delete的时候也不要带[]
记住这个就可以了

热点排行