hmmm...

define only empty pointers intially for the things which are able to be changed. e.g. PANEL* pnl; instead of PANEL* pnl = { ... } (then use pan create) and/or use the linked lists or pVars to remove everything and call main() again when you need it?