So to show you what I mean, think what should happen when you run the following code:
DIM T0[0] DIM T1[0] DIM T2[0] DIM T3[0] DIM EMPTY[0] DEF PUSHING PUSH T0,1 PUSH T1,2 PUSH T2,3 PUSH T3,4 END T0=EMPTY T1=EMPTY T2=EMPTY T3=EMPTY PUSHING PUSHING ?LEN(T0)The output should be 2, right? After all, you pushed data into the array T0 twice. But the output is 8. WHY?!?!?! Well, the contents of T0 are [1,2,3,4,1,2,3,4]. But it should be [1,2]. Because the array is set to be EMPTY, it pushes everything into EMPTY and everything is affected. See, that would make sense if this were C and it used pointers, but this is BASIC. Setting all arrays to EMPTY shouldn't matter because it's copying EMPTY into these arrays, not linking them. Correct me if I'm wrong, but this is ridiculous. I unfortunately had to encounter this in the wild, not the lab, so I have to go and change code to go around this.