谁能告诉我下列代码错在哪里?当我遍历到叶结点再第一次递归往上级结点返回时提示资源访问出错!
Type
//树结构
//------------------------------------------------
PUserInfo= ^TUserInfo;
TUserInfo= record
name:String;
fChild:TList;//子结点
end;
//------------------------------------------------
var
fUser:TList;
procedure TFomr1.ShowTree(fList: TList);
var
i: Integer;
node: PUserInfo;
begin
if fList <> nil then
begin
node := New(PUserInfo);
for i := 0 to fList.Count - 1 do
begin
node := PUserInfo(fList.Items[i]);
ShowTree(node^.fChild);
end;
end;
end;
procedure TFomr1.UserClick(Sender: TObject);
begin
ShowTree(fUser);
end;
谁能告诉我代码错在哪里?当我遍历到叶结点再第一次递归往上级结点返回时提示资源访问出错!
[解决办法]
缺创建这个树结构的代码啊。
二楼说得很清楚了:TUserInfo创建时要将fChild设置为nil,否则 fList < > nil 判断成立,临时变量是不会初始化的。
由于没有看到创建这个树结构的代码,所以不能排除二楼所描述的这种问题的可能性。
[解决办法]
PUserInfo的初始化是不是有问题