Buffer Overflow Intro. ©2002, Jedidiah R. Crandall, Susan L. Gerhart, Jan G. Hogle.  http://sfsecurity.pr.erau.edu
Programs use addresses for commonly used orders and to change order of actions

Norman can only read an instruction from one mailbox, execute it, and then move onto the next mailbox.  But sometimes the program wants him to jump to a new address, in which case the program gives him a pointer to the next instruction he should execute (instead of just the one in the next mailbox). 

The pointer is just a number which is the address of another mailbox. 

The program counter is the number that the mailroom worker has to remember in order to remember what mailbox’s instruction he is executing at any moment.