Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ARRAY declaration in GOSUB routines.
#17
(02-05-2024, 02:20 PM)bplus Wrote: Wow I did not know that about erase in subs in main this works fine!
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!

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
yes, no problem sharing from main!

@Bartok maybe that will work for you?
Yes, it works. An it works also like that:

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.
Reply


Messages In This Thread
ARRAY declaration in GOSUB routines. - by bartok - 02-04-2024, 01:05 PM
RE: ARRAY declaration in GOSUB routines. - by bartok - 02-05-2024, 02:40 PM



Users browsing this thread: 2 Guest(s)