用SetLength分配的动态数组,在程序结束时需要人工释放内存吗?解决思路

用SetLength分配的动态数组,在程序结束时需要人工释放内存吗?
如果需要,如何释放?
不知为什么我的程序经常性但又很随机的报内存错误?

------解决方案--------------------
setlength(buf,10);

....

setlength(buf,0);
------解决方案--------------------
最好是自己用代码进行释放:

SetLength(buf, 0);

或者

buf := nil;


------解决方案--------------------
不需要。
------解决方案--------------------
动态数组超出生存期范围将自动释放。
------解决方案--------------------
我在 程序释放的时候加上了 darray := nil 
但是却出先异常
我也看过类似的很多文章都说需要释放内存的!!
------解决方案--------------------
楼上的,你不可以这样做。
------解决方案--------------------
收藏一下,慢慢瞧