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

函数返回指针有关问题

2012-03-20 
函数返回指针问题且看以下代码TClient Class(TComponent)public...endPTClient ^TClientClientList: T

函数返回指针问题
且看以下代码

TClient =Class(TComponent)
public
  ...
end

PTClient = ^TClient;

ClientList: TObjectList; //存放TClient的多个实例
ClientList.Add(TClient.Create);
ClientList.Add(TClient.Create);

function TService_Provider.LocateClient(SocketID:Cardinal):PTClient; //返回指针
var
  i:integer;
begin
  i:=0;
  result ^:= TClient(ClientList[i]);//这里返回第一个实例,编译是成功的,但是运行时出现异常!!!!!请问还有什么好的写法吗?
end;

[解决办法]
if ClientList[i] is TClient then
result ^:= TClient(ClientList[i]);
[解决办法]
result := PTClient(ClientList[i]);
[解决办法]
GetMem(result,sizeof(result));
result^ := TClient(ClientList[i]);

热点排行