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

哪位高手能告诉小弟我下列代码错在哪里?当小弟我遍历到叶结点再第一次递归往上级结点返回时提示资源访问出错

2012-03-20 
谁能告诉我下列代码错在哪里?当我遍历到叶结点再第一次递归往上级结点返回时提示资源访问出错!Type//树结

谁能告诉我下列代码错在哪里?当我遍历到叶结点再第一次递归往上级结点返回时提示资源访问出错!
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的初始化是不是有问题

热点排行