Pourquoi la plupart Delphi exemples d'utilisation FillChar() pour initialiser les registres?

J'ai juste demandé pourquoi la plupart des Delphi exemples d'utilisation FillChar() pour initialiser les registres.

type
  TFoo = record
    i: Integer;
    s: string; // not safe in record, better use PChar instead
  end;

const
  EmptyFoo: TFoo = (i: 0; s: '');

procedure Test;
var
  Foo: TFoo;
  s2: string;
begin
  Foo := EmptyFoo; // initialize a record

  // Danger code starts
  FillChar(Foo, SizeOf(Foo), #0);
  s2 := Copy("Leak Test", 1, MaxInt); // The refcount of the string buffer = 1
  Foo.s = s2; // The refcount of s2 = 2
  FillChar(Foo, SizeOf(Foo), #0); // The refcount is expected to be 1, but it is still 2
end;
// After exiting the procedure, the string buffer still has 1 reference. This string buffer is regarded as a memory leak.

Ici (http://stanleyxu2005.blogspot.com/2008/01/potential-memory-leak-by-initializing.html) est ma note sur ce sujet. L'OMI, de déclarer une constante avec la valeur par défaut est une meilleure façon.