Memory is precious in Palm OS, since the total amount of memory available is very small. Dynamic memory allocation is often necessary while building applications in which memory at runtime is required. One should always allocate dynamic memory using handles rather than pointers. Palm OS can move handle based memory around to avoid heap fragmentation, but pointers are locked down in the memory. For example, one should use MemHandleNew instead of MemPtrNew to make most of the scarce memory available.