国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

學校網站群建設方案找個網站

學校網站群建設方案,找個網站,jsp網站開發(fā)與設計摘要,西安百度公司地址介紹文章目錄小結問題及解決參考小結 使用sprintf(...)進行格式化是一種標準的做法,但是這樣做是有一個極大的風險,由于sprintf(...)不進行邊界檢查,這樣會有寫操作溢出邊界的風險,并導致程序崩潰。本文進行了簡單寫操作溢出邊界的測…

文章目錄

  • 小結
  • 問題及解決
  • 參考

小結

使用sprintf(...)進行格式化是一種標準的做法,但是這樣做是有一個極大的風險,由于sprintf(...)不進行邊界檢查,這樣會有寫操作溢出邊界的風險,并導致程序崩潰。本文進行了簡單寫操作溢出邊界的測試,模擬程序崩潰,并建議了更為安全的snprintf(...)方法進行格式化。

問題及解決

眾所周知,sprintf(...)不進行邊界檢查,再加上double或者是float的內建的數據類型一起使用(有時候會是一個比較大的正數),比較容易出現(xiàn)寫操作溢出邊界并導致程序崩潰,已經是臭名昭著了。

以代碼sprintf(str, "%.2fMB(%.2f%%)", double_a, double_b);為例。

sprintf的說明指示符%.2f規(guī)定了小數點后面截取兩位,但小數點前面有多少位就采用多少位,例如像2.4008127812204012E+159這樣的大數,基本上小數點前面就超過160位數字了。如果數組str比較小,就抓瞎了,寫操作會溢出邊界,并致程序崩潰。這種錯誤有時候極難定位,浪費很多寶貴的時候來找bug。

如果采用比較安全的做法, 例如: snprintf(str_short, 30, "%.2fMB(%.2f%%)", double_a, double_b);,規(guī)定了邊界,只寫入前29位(最后再加一個結尾符),這樣就不用擔心寫操作會溢出邊界的問題了。

以下是程序測試很好地模擬了幾種情況(double_a是一個很大的數,double_b是一個很小的數):

	char str[200];char str_short[30];double double_a= 2.4008127812204012E+159;double double_b= 1.3906711615670009E-309;cout << "double_a= " << double_a<< endl;cout << "double_b= " << double_b<< endl;//以下代碼不會出現(xiàn)溢出邊界,程序正常運行sprintf(str, "%.2fMB(%.2f%%)", double_a, double_b);cout << "str string = " << strStorage << endl;//以下代碼會出現(xiàn)溢出邊界并導致程序崩潰, 注釋之//sprintf(str_short, "%.2fMB(%.2f%%)", double_a, double_b);//cout << "str_short string = " << str_short<< endl;//以下代碼是比較安全的做法,進行有效的邊界檢查, 不會出現(xiàn)溢出邊界,程序正常運行,輸出了29位數字(后接一個結尾符)snprintf(str_short, 30, "%.2fMB(%.2f%%)", double_a, double_b);cout << "str_short string = " << str_short<< endl;system("pause");return 0;

輸出結果:

double_a= 2.40081e+159
double_b= 1.39067e-309
str string = 2400812781220401246196118053255811918339999978374591715533604156445593861118215728144462510983065193819073699313679732935503602200085321608454731838025375940608.00MB(0.00%)
str_short string = 24008127812204012461961180532
Press any key to continue . . .

參考

sprintf(str,“%f”, voltage_temp ); works in C but not C ++
C++ Buffer Overflow: Format String (%f/%F)
Stackoverflow: understanding the dangers of sprintf(…)
C++ float and double

http://m.aloenet.com.cn/news/42367.html

相關文章:

  • 淘客請人做網站網站策劃書
  • 做網站大概要多外鏈怎么打開
  • 如何建設網站的管理平臺免費網站seo
  • 婁底網站建設工作室谷歌收錄查詢
  • 成都建設網站微營銷官網
  • 市局網站建設建議如何注冊自己的網站
  • 網站規(guī)劃與建設論文網站seo外包公司有哪些
  • 怎么用電腦做web服務器網站淘寶關鍵詞排名是怎么做的
  • 西安專業(yè)做網站建設費用愛站網的關鍵詞是怎么來的
  • 溫州網站制作多少錢全網營銷公司
  • 網站備案 godaddyseo公司上海牛巨微
  • 公司網站建設費屬于什么費用網站服務器是什么意思
  • 做返利網站怎麼網絡推廣費用預算表
  • 大連在哪個網站做網上核名鄭州seo公司哪家好
  • 技術支持:淄博網站建設濰坊自動seo
  • 線上推廣方法有哪些長沙網站seo報價
  • 期貨做程序化回測的網站網站網絡排名優(yōu)化方法
  • 建設綜合信息網站需要多少錢如何廣告推廣
  • 國產一級a做爰片免費網站哪個網站是免費的
  • 網絡營銷模式包括哪些seo網站關鍵詞快速排名
  • 做網站放太多視頻seo項目分析
  • 十堰網站seo方法百度seo關鍵詞優(yōu)化公司
  • 做公司網站一般多少錢免費軟件下載網站有哪些
  • 集團網站建設方案書游戲推廣員是違法的嗎
  • 軟件開發(fā)步驟流程鄭州見效果付費優(yōu)化公司
  • 廈門 微網站制作企業(yè)推廣策劃書
  • 做寵物食品的網站優(yōu)化落實疫情防控新十條
  • 上傳了網站源碼怎么做新聞最新熱點
  • 桓臺網站開發(fā)廣州:推動優(yōu)化防控措施落地
  • 中國互聯(lián)網網站性能丈哥seo博客工具