tet = class
ip:string;
end;te2 = record
ip:string;
end;我实现一个tet和te2,并对tet.ip赋值,并把这个值赋给te2.ip,然后我把te2插入一个Tlist中,使用时从Tlist取出te2,可以te2中的ip为空?这是为什么?
ip:string;
end;te2 = record
ip:string;
end;我实现一个tet和te2,并对tet.ip赋值,并把这个值赋给te2.ip,然后我把te2插入一个Tlist中,使用时从Tlist取出te2,可以te2中的ip为空?这是为什么?
t:te2;
t.ip := te.ip;
TList.Add(@t);
就是上面这样,但字符串会没了
我后改成class就可以了,不知道为什么
另外对局部变量中的record取地址并加到更久生存期的变量中极不安全(或者应该说永远不要这么做),因为record是在栈(stack)中分配的,随着程序的进行,已经结束的过程留在栈中的内容不可避免的会被其它过程破坏