假設你有一張欠款清單,上面記錄了你的債主的姓名和欠款金額。
你還有一支神奇的鉛筆,這支筆內建了一種擦除功能,如果你用它在紙上某個地方寫字,它能自動的把這個地方以前有的字給擦除掉,這樣就只顯示出你新寫上的東西。這就是計算機記憶體的工作原理,跟我們生活中的塗改寫字方式稍有不同。
你買一輛5000美元的轎車,只付了500美元的首款,於是你欠他4500美元。他告訴你他的名字叫約翰-史密斯。你把他的名字和欠款數目寫到欠款表上。你的欠款清單現在看起來是這樣:
後來,你按照欠款單上的記錄還清了欠款。你償還了4500美元(加上利息),把這條記錄從欠款單上擦除了,現在你的欠款單又變成了空白。
之後,你又從別人那裡借了1000美元。他告訴你他的名字叫“約翰-史密斯 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9999999999”。你把欠款數目(1000美元)和債主的姓名(約翰-史密 斯xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9999999999)寫到了你的欠款單上。現在你的欠款單看起來是這個樣子:
(1000美元的最後一個0並沒有被擦除掉。這並不重要。)
當寫他的姓名時,姓名欄裡寫不下他的名字,但你繼續往後寫,寫到了“欠款數目”欄裡!這就是記憶體溢位。
後來,這個欠款單提醒你還欠約翰-史密斯xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx先生99999999990美元的錢。你找到他,償還了他大概1000億美元的欠款。