Am 2014-02-09 15:10, schrieb Fred van Stappen:
>  > if length(MyArray) > 0 then
>  > for x := 0 to high(MyArray) do
>  > MyArray[x].Free;

As I have learned just recently ;-) this code could be shortened by

for x := low(MyArray) to high(MyArray) do
   MyArray[x].Free;

if x is a signed integer. So you would save the length check.


> Because the threads are already freed (yes/no) ?

Yes, that's tricky. *Some* (managed) data structures like ansistrings and 
dynamic arrays are freed by the compiler. But if you requested memory by 
yourself (new, getmem) then you need to clean it up yourself too. I am not sure 
what applies to threads but I would think that they are managed by the compiler 
so that a setlength(MyArray,0) would automatically free all (automatically) 
allocated data.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to