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

函数中创建的动态数组作为返回值,会不会造成内存泄漏?解决方法

2012-02-08 
函数中创建的动态数组作为返回值,会不会造成内存泄漏?像下面这样TIntegersarrayofIntegerfunctionGetSom

函数中创建的动态数组作为返回值,会不会造成内存泄漏?
像下面这样
TIntegers   =   array   of   Integer;
function   GetSomething:   TIntegers;
var
    TmpArray:   TIntegers;
begin
    SetLength(TmpArray,   256);
    //赋值省略
    Result   :=   TmpArray;
end;
然后在别的方法中调用这个函数得到一个数组,使用完以后又不可能像对象那样free掉,不知道会造成内存泄漏?   数组是不是一个对象?
我对java等纯OO语言比较熟悉,   对Delphi中的对象机制不是很清楚,   希望谁能给我讲一下,   谢谢!

[解决办法]
不会的。会自动释放。
[解决办法]
超出它的作用域会自动释放,你也可以手动释放SetLength(TmpArray, 0);
[解决办法]
手动释放SetLength(TmpArray, 0)比较安全..

热点排行