(02-05-2024, 02:20 PM)bplus Wrote: Wow I did not know that about erase in subs in main this works fine!Yes, it works. An it works also like that:
Code: (Select All)Dim a(3)
a(1) = 1
Print a(1); "prints 1 with no error"
Erase a
Print a(1); "error! the array has been freed and erased in the SUB"
I've used erase quite a bit, guess it's always been with ones dim'd in main or shared from main. oh let's try that!
yes, no problem sharing from main!Code: (Select All)Dim Shared a(3)
foo
Sub foo
a(1) = 1
Print a(1); "prints 1 with no error"
Erase a
Print a(1); "error! the array has been freed and erased in the SUB"
End Sub
@Bartok maybe that will work for you?
Code: (Select All)
OPTION _EXPLICIT
DIM a(3)
foo
SUB foo
SHARED a()
a(1) = 1
PRINT a(1); "prints 1 with no error"
ERASE a
PRINT a(1); "prints correctly 0 with no errors"
END SUB
But I don't want to do that in my code, because those arrays are local and there is absolutely no need to share them with the main code.
So, if the arrays are defined in the main code, ERASE set to "0" or "null". If the array are local, ERASE deletes them. That's the reason why I don't have problems with ERASE in the other 2 ERASE command I used in the "sub" called by means of GOSUB into the main code.