gpt4 book ai didi

delphi - 将动态数组中的所有值重置为默认值

转载 作者:行者123 更新时间:2023-12-03 19:36:37 25 4
gpt4 key购买 nike

请看我的代码:

var
b: array of Boolean;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(b,3); //All values are False by default
b[0]:=True;
//Do something here
SetLength(b,0);
SetLength(b,3);
end;

我测试了 b[0]=False .

我的问题:正在使用 SetLength(b,0)然后 SetLength(b,n)将所有值重置为默认值(False)的正确方法?
b[0]=False在所有情况下,或 True某些情况下?

最佳答案

SetLength()零初始化它分配的内存,所以是的,默认情况下 bool 值始终为 False。

话虽如此,考虑手动重置 bool 值,而不是重新分配数组:

var
b: array of Boolean;

procedure TForm1.Button1Click(Sender: TObject);
var
I: integer;
begin
SetLength(b,3); //All values are False by default
b[0] := True;
//Do something here
for I := 0 to High(b) do
b[I] := False; // or Default(Boolean)
end;

或者,您可以使用 FillChar() 将分配的内存填充为零。或 ZeroMemory() :
var
b: array of Boolean;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(b,3); //All values are False by default
b[0] := True;
//Do something here
ZeroMemory(@b[0], Length(b)); // or FillChar(b[0], Length(b), $0);
end;

关于delphi - 将动态数组中的所有值重置为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56092861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com