如何向外行人解釋什么是內(nèi)存溢出
假設(shè)你有一張欠款清單,上面記錄了你的債主的姓名和欠款金額。
你還有一支神奇的鉛筆,這支筆內(nèi)置了一種擦除功能,如果你用它在紙上某個(gè)地方寫(xiě)字,它能自動(dòng)的把這個(gè)地方以前有的字給擦除掉,這樣就只顯示出你新寫(xiě)上的東西。這就是計(jì)算機(jī)內(nèi)存的工作原理,跟我們生活中的涂改寫(xiě)字方式稍有不同。
你買(mǎi)一輛5000美元的轎車(chē),只付了500美元的首款,于是你欠他4500美元。他告訴你他的名字叫約翰-史密斯。你把他的名字和欠款數(shù)目寫(xiě)到欠款表上。你的欠款清單現(xiàn)在看起來(lái)是這樣:
后來(lái),你按照欠款單上的記錄還清了欠款。你償還了4500美元(加上利息),把這條記錄從欠款單上擦除了,現(xiàn)在你的欠款單又變成了空白。
之后,你又從別人那里借了1000美元。他告訴你他的名字叫“約翰-史密斯xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9999999999”。你把欠款數(shù)目(1000美元)和債主的姓名(約翰-史密斯xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9999999999)寫(xiě)到了你的欠款單上?,F(xiàn)在你的欠款單看起來(lái)是這個(gè)樣子:
(1000美元的***一個(gè)0并沒(méi)有被擦除掉。這并不重要。)
當(dāng)寫(xiě)他的姓名時(shí),姓名欄里寫(xiě)不下他的名字,但你繼續(xù)往后寫(xiě),寫(xiě)到了“欠款數(shù)目”欄里!這就是內(nèi)存溢出。
后來(lái),這個(gè)欠款單提醒你還欠約翰-史密斯xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx先生99999999990美元的錢(qián)。你找到他,償還了他大概1000億美元的欠款。