<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Am 19.04.2013 06:36, schrieb Xiangrong
      Fang:<br>
    </div>
    <blockquote
cite="mid:CAP93jB3QeS+Uczbg2JeAtXj+257MmwZzu_Xa_MbWQwirD0Xtwg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><span style="font-family:courier new,monospace">Hi All,<br>
              <br>
            </span></div>
          <span style="font-family:courier new,monospace">I'm studying
            how pascal manages strings.  I wrote a simple test program:<br>
            <br>
            program stringtest;<br>
            {$mode objfpc}{$H+}<br>
            uses Classes, sysutils;<br>
            function test: PString;<br>
            var<br>
              s : string;<br>
            begin<br>
              New(Result);<br>
              Result^ := FloatToStr(Random);<br>
          </span></div>
        <span style="font-family:courier new,monospace">//  s :=
          FloatToStr(Random);<br>
        </span>
        <div><span style="font-family:courier new,monospace">//  Result
            := @s;<br>
            end;<br>
            var<br>
              i : Integer;<br>
            begin<br>
              Randomize;<br>
              with TList.Create do try<br>
                for i := 0 to 9 do Add(test);<br>
                for i := 0 to Count - 1 do begin<br>
                  WriteLn(PString(Items[i])^);<br>
                end;<br>
              finally<br>
                Free;<br>
              end;<br>
            end. <br>
            <br>
          </span></div>
        <div><span style="font-family:courier new,monospace">The program
            runs fine, but:<br>
            <br>
          </span></div>
        <div><span style="font-family:courier new,monospace">1. I don't
            know whether I have to MANUALLY free memory for these
            strings to prevent leak?<br>
          </span></div>
      </div>
    </blockquote>
    <br>
    The string types "String" (in mode $H+), "AnsiString" and
    "UnicodeString" are managed by the compiler/RTL. If you use a
    pointer type then you need to manage it yourself, thus you need to
    free the PString manually in this case.<br>
    <br>
    Regards,<br>
    Sven<br>
  </body>
</html>