A first software program executing on a computing device emulates a second
computing device executing a software program using emulated memory. The
first software program permits the second software program to perform an
operation on a contiguous portion of the emulated memory only when a
pointer and a table entry both contain the same identifier, thus
protecting against common types of memory usage errors in the second
software program. The pointer has an address to the contiguous portion.
The table entry maps to the contiguous portion. A plurality of table
entries map to a respective plurality of contiguous portions of the
emulated memory. A plurality of the pointers each contain the address to
a respective contiguous portion of the emulated memory as well as
containing an identifier corresponding to the respective contiguous
portion of the emulated memory. The second computing device can be high
or low in resources.