F
funxu
Unregistered / Unconfirmed
GUEST, unregistred user!
今天查看指针帮助时突然发现一个问题typepmyrec=^myrec
myrec=record i:integer
r:real
end;...varrecmyrec;t:tlist;i:integer;begint:=tlist.create;new(rec);rec^.i:=10;//rec.i:=10;rec^.r:=0.01;//rec.r:=0.01;t.add(rec);new(rec);rec^.i:=20;//rec.i:=20;rec^.r:=0.02;//rec.r:=0.02;t.add(rec);..for i:=t.count-1 downto 0 dobegindispose(t.items);end;t.free;end;这是一段关于指针的标准使用例子,经过测试注释掉的代码也可以正常使用,赋值和释放,从list里取出的值也完全正确 那么我想问rec^.i:=10和rec.i:=10;是相同的意思么?rec.i:=10;这样使用过很多次也没有发现内存溢出和访问错误rec^应该是指针指向的值,而rec是指针,rec.i是怎么赋值的呢?
myrec=record i:integer
r:real
end;...varrecmyrec;t:tlist;i:integer;begint:=tlist.create;new(rec);rec^.i:=10;//rec.i:=10;rec^.r:=0.01;//rec.r:=0.01;t.add(rec);new(rec);rec^.i:=20;//rec.i:=20;rec^.r:=0.02;//rec.r:=0.02;t.add(rec);..for i:=t.count-1 downto 0 dobegindispose(t.items);end;t.free;end;这是一段关于指针的标准使用例子,经过测试注释掉的代码也可以正常使用,赋值和释放,从list里取出的值也完全正确 那么我想问rec^.i:=10和rec.i:=10;是相同的意思么?rec.i:=10;这样使用过很多次也没有发现内存溢出和访问错误rec^应该是指针指向的值,而rec是指针,rec.i是怎么赋值的呢?