1.用浮點(diǎn)數(shù)來(lái)儲(chǔ)存。一般來(lái)說(shuō)對(duì)于不是太大的數(shù),就不會(huì)溢出了。
成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供雙灤企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為雙灤眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
2.用多個(gè)長(zhǎng)整形(數(shù)組或者鏈表)來(lái)分別儲(chǔ)存這個(gè)大數(shù)的一部分。
C語(yǔ)言的強(qiáng)大之處就在于他的靈活性,程序員自己把握。編譯器可以幫助預(yù)防錯(cuò)誤,但有些程序會(huì)利用溢出,所以溢出不完全是錯(cuò)誤的事情。
1、溢出:
數(shù)據(jù)類(lèi)型超過(guò)了計(jì)算機(jī)字長(zhǎng)的界限而出現(xiàn)的數(shù)據(jù)溢出;
2、溢出可能原因:
當(dāng)應(yīng)用程序讀取用戶(hù)數(shù)據(jù),復(fù)制到應(yīng)用程序開(kāi)辟的內(nèi)存緩沖區(qū)中,卻無(wú)法保證緩沖區(qū)的空間足夠時(shí) (假設(shè)定義數(shù)組int Array[10], 而在調(diào)用時(shí)使用Array[11] 或存放的數(shù)據(jù)超過(guò)int類(lèi)型容量等), 內(nèi)存緩沖區(qū)就可能會(huì)溢出.
3、溢出因素分析:
由于C/C++語(yǔ)言所固有的缺陷,既不檢查數(shù)組邊界,又不檢查類(lèi)型可靠性,且用C/C++語(yǔ)言開(kāi)發(fā)的程序由于目標(biāo)代碼非常接近機(jī)器內(nèi)核,因而能夠直接訪(fǎng)問(wèn)內(nèi)存和寄存器,只要合理編碼,C/C++應(yīng)用程序在執(zhí)行效率上必然優(yōu)于其它高級(jí)語(yǔ)言。然而,C/C++語(yǔ)言導(dǎo)致內(nèi)存溢出問(wèn)題的可能性也要大許多。
用數(shù)組存放數(shù)據(jù),比如超過(guò)100就進(jìn)位,相當(dāng)于定義一個(gè)100進(jìn)制的數(shù)據(jù),定義一個(gè)a[10]就可以存放
辦法很多
1、增加緩沖區(qū)大小
2、函數(shù)調(diào)用前為緩沖區(qū)增加邊界標(biāo)識(shí),調(diào)用后進(jìn)行越界判斷
3、在函數(shù)中進(jìn)行緩沖區(qū)預(yù)警,過(guò)界就報(bào)錯(cuò)
……