How can I determine the type and size of a variable?

Previous TI Variables and the Variable Allocation Table (VAT) Next

Q: How I can determine the size of a symbol (i.e. TI-Basic variable) and the TIOS type of the variable?
A: Assume that you found a VAT symbol entry for a symbol (say symbol named "foo") which may be done for example using SymFindPtr:
SYM_ENTRY *sym;
...
sym = SymFindPtr (SYMSTR ("foo"), 0);
Then, do the following to find the size and type:
unsigned short size;
ESQ type;
...
size = ((MULTI_EXPR*) HeapDeref (sym->handle))->Size + 2;
type = *(HToESI (sym->handle));
After this, the variables 'size' and 'type' will contain exactly what do you want.