function aa: TStringList;
var
stlResult: TStringList;
begin
stlResult := TstringList.Create;
Result := stlResult;
stlResult.Free; //如果无此句,则正确,因为释放后Result就不知道指向哪里了
end;
请指教,批评
...全文
5123打赏收藏
如何处理的代码!
定义一个函数 function aa: TStringList; var stlResult: TStringList; begin stlResult := TstringList.Create; Result := stlResult; stlResult.Free; //如果无此句,则正确,因为释放后Result就不知道指向哪里了 end; 请指教,批评
function aa: TStringList;
var
stlResult: TStringList;
begin
stlResult := TstringList.Create;
Result := stlResult;
stlResult.Free;
end;
进行资源申请与释放的工作应该在同一层次进行。这样的语句严重违反了这一规则。
可以用 zswang(伴水) 的方法。
把结果改为参数进行传递。