如何删除动态数组?
如:
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;
}
[解决办法]
[解决办法]
new的时候带[],那么delete的时候也要带[]
new的时候不带[],那么delete的时候也不要带[]
记住这个就可以了