|
In _test3 BEFORE _test4 a$ = TEST3 pointer: 56237586 length: 5 In _test4 BEFORE assigning the string a$ = pointer: 0 length: 0 In _test4 AFTER assigning the string a$ = TEST4 STRING pointer: 56237594 length: 12 Back in _test3 AFTER _test4 a$ = TEST3 pointer: 56237586 length: 5 _test3 string at _test4 string length: TEST3TEST >
|
|
|
How the string handling works internally should be completely transparent to a user's program. If you have encountered 'vanishing' or 'corrupted' strings you have found a MASSIVE BUG in BBC BASIC for Windows. If that is indeed the case please engage with me VERY URGENTLY so that this may be investigated and if necessary fixed.
|
DIM S% LOCAL -1 PROC_printChrsOnStack(S%, !^a$)
|
|
PRINT a$ a$ += CHR$(0) PRINT $$!^a$
PRINT a$ S% = !^a$ a$ += CHR$(0) PRINT $$S%
|
pFrmt% = !^Node{}
dataSize% = !(pFrmt%) dataSize% = DIM(Node{})
|
|
DEF FNgetitem(RETURN n{}, n%)
IF n% = 0 THEN = ""
!(^n{}+4) = n%
= n.item$
. I see that I've missed quite a few fundamental things, and while I apologise for not having first studied the linked list example on the wiki, I've learned more by doing it the hard way.
|