<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><br><div>> Date: Sun, 9 Feb 2014 13:08:16 +0100<br>> From: freepascal@ypa-software.de<br>> To: fpc-pascal@lists.freepascal.org<br>> Subject: Re: [fpc-pascal] High() and Low() for empty dynamic arrays<br>> <br>> Am 09.02.2014 13:05, schrieb Fred van Stappen:<br>> > if length(MyArray) > 0 then<br>> >   for x := 0 to high(MyArray) do<br>> >     MyArray[x].Free;<br>> > <br>> > But, if i use :<br>> > <br>> >  setlength(MyArray, 0) ;<br>> > <br>> > would it do the same job ?<br>> <br>> No. Your array contains only references to the objects. The references<br>> where deleted, but the objects remain in memory without any destructor call.<br>> <br>> g<br>> Michael<br><br>OK, many thanks Michael.<br><br>Hum, i have a dynamic array of threads.<br><br>mythread.create has :<br>FreeOnTerminate := True;  <br><br>So, when the thread terminate, it frees the memory too ? (yes/no).<br>And it explain why i get a crash and error message if i try to do, for dynamic arrays of threads :<br><br> > if length(MyArray) > 0 then<br> >   for x := 0 to high(MyArray) do<br> >     MyArray[x].Free;<br><br>Because the threads are already freed (yes/no) ?<br><br>If so, how can i know if      MyArray[x] was already freed ?<br><br>When i use:<br>if assigned(MyArray[x]) then MyArray[x].Free; <br><br>It does not work. <br><br>Many thanks.<br><br>Fred<br></div>                                          </div></body>
</html>