Additional words for dealing with memory blocks are described in Memory Blocks. An alternative to the following words are among the $tring words (see $tring words).
Copy the memory block addr u to addr2, which is the start of a newly heap allocated u-byte region.
Addr1 u1 is a memory block in heap memory. Increase the size of this memory block by u aus, possibly reallocating it. C-addr2 u2 is the resulting memory block (u2=u1+u), addr is the start of the u additional aus (addr=addr2+u1).
Addr is the address of a 2variable containing a memory
block descriptor c-addr u in heap memory;
free-mem-var
frees the memory block and stores 0 0 in
the 2variable.
Usage example:
2variable myblock "foo" save-mem myblock 2! myblock 2@ "bar" tuck >r >r extend-mem myblock 2! r> swap r> move myblock 2@ type \ prints "foobar" myblock free-mem-var