请问将一个记录型数组清空用什麽指令?(25分)

  • 主题发起人 主题发起人 sh8
  • 开始时间 开始时间
先Free,后Create。
 
以下方法不一定对,因为,我不太清楚你要什么
redRecord
1. Despose(redRecord);//使用动态记录数组指针释放
2. redRecord := nil ;
3.自己写一个私人过程, 清除 ;
4.New (redRecord) ;//必须使用在动态记录数组上;
。。。。

 
批量清空可以用move
 
对于静态数组的清空我也想知道,但是好象有的时候这种需求可避免,比如如果是局
部变量那么在下次进入该函数或过程的时候,静态数组是重新分配的,也就不存在清
空问题,如果真有此需求,改用动态数组吧!
 
忘了...
也听
 
不明白你的意思,做了两中假设:

一、
type
TRec = record
iV1 : integer;
sV2 : String;
end;
var
Rec1,Rec2 : TRec;
A1 : array[0..100] of TRec;
begin
Rec1.iV1 := 1213;
Rec2.sV2 := 'assadfs';
A1[0] := Rec1;
A1[1] := Rec2;
end;

//这种情况下,变量和数组都是静态分配的,不用清除。

二、

type
PRec = ^TRec;
TRec = record
iV1 : integer;
sV2 : String;
end;
var
PR1 : PRec;
List : TList;
I : integer;
begin
List := TList.Create;
for I := 0 to 100 do begin
GetMem(PR1,SizeOf(TRec));
PR1.iV1 := Random(100);
List.Add(PR1);
end;
//由于是链表和记录指针都是动态分配的,所以都要清除。
for I := 0 to List.Count - 1 do begin
FreeMem(List.Items,SizeOf(TRec));
end;
List.Free;
end;
 

Initializing an array or record to null. - by Inprise Developer Support Staff




Abstract:Using FillChar to set values in an array or record.

Question:
How Do I initialize an array or record to null?

Answer:
By using the FillChar procedure. Here is an example:



procedure TForm1.Button1Click(Sender: TObject);
type
TIntRec = record
i1: integer;
i2: integer;
i3: integer;
i4: integer;
i5: integer;
end;
var
IntArray: array[0..4] of integer;
i: integer;
s: string;
IntRec: TIntRec;
begin
// the array:
FillChar(IntArray,SizeOf(IntArray),0); // if you comment out this line, you will have random values in the array
for i := low(IntArray) to high(IntArray) do
s := s+IntToStr(IntArray);
form1.Caption := 'IntArray: '+s;
// the record:
FillChar(IntRec,SizeOf(IntRec),0); // if you comment out this line, you will have random values in the record
form1.Caption := form1.Caption+' '+'IntRec: '+IntToStr(IntRec.i1)+IntToStr(IntRec.i2)+IntToStr(IntRec.i3)+IntToStr(IntRec.i4)+IntToStr(IntRec.i5);
end;





--------------------------------------------------------------------------------
 
接受答案了.
 
后退
顶部