使用堆的方式弄出来一个数组为什么一定要delete[]

来源:互联网 发布:广电网络能吃鸡吗 编辑:程序博客网 时间:2024/05/18 17:59

很简单,因为我们不delete[]的话,将会导致内存泄漏

详见下面的几个截图


你会发现。。。。。。这样子会导致程序直接崩溃的。。。。。。这是最最最让人难以忍受的后果


同时还有一些小关键

对于指针,我觉得真的有很多要注意的小地方。

首先我们如果使用coor++,

那么此时我们的coor[0]就不是指向第一个元素了,而是指向第二个元素了,虽然它的索引是0,

而且此时,一定要注意!

delete[]coor;在这里,虽然你注意到了使用[],

但是!这是错误的!

因为coor在这里已经不再指向我们原来申请的出来的那个地址了

要想恢复很简单,直接coor--;

补充一点点:

coor在delete之后应该赋值NULL;

coor=NULL;

这样子会安全一点

阅读全文
0 0