1、另外,“字符串不是總是以\0作為串的結(jié)束符”,答案是肯定的,不然puts()函數(shù)就不能在合適的地方停下來了。這里st[15]被gets()函數(shù)賦值為\0。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比玉環(huán)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式玉環(huán)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋玉環(huán)地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
2、談不上“危險(xiǎn)”,gets() 函數(shù)從標(biāo)準(zhǔn)輸入讀入 一行文本,直到讀到 新行符 或 EOF 字符 之前,不會(huì)停止讀入文本。也就是:gets() 不檢查邊界。
3、因?yàn)槟x的x為字符型數(shù)據(jù),那么它對(duì)應(yīng)的輸入輸出格式符為%c,但是您在輸入語句中寫的是%s,是字符串格式,不符合字符型單個(gè)變量的輸入輸出。
1、是的,如果這是某書上的做法,那么,我只能說它為你們提供了一個(gè)錯(cuò)誤的榜樣。這樣使用gets()已經(jīng)發(fā)生了溢出!這是gets()不檢查數(shù)據(jù)邊界的bug造成的。
2、這是對(duì)程序產(chǎn)生BUG,出現(xiàn)不可靠性的一個(gè)描述,有些函數(shù)在某些意外情況會(huì)導(dǎo)致程序陷入不可控狀態(tài),僅僅是PC上運(yùn)行最多也就是退出而已,但是如果是運(yùn)行在飛機(jī)等系統(tǒng)里的話,就會(huì)有大麻煩,說危險(xiǎn)也不為過。
3、gets確實(shí)是不安全的,因?yàn)闊o法知道該函數(shù)返回的數(shù)據(jù)有多長(zhǎng)。
4、gets(a);當(dāng)你輸入的東西遠(yuǎn)比12要長(zhǎng)時(shí),他還是會(huì)接收并寫入空間。這樣就溢出了,覆蓋掉后面的相應(yīng)空間。也就是說他寫入了不該他來寫的東西。如果寫得設(shè)計(jì)好點(diǎn),完全可以通過這個(gè)去完成一些不好的事情。
5、gets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)。可以無限讀取,不會(huì)判斷上限,以回車結(jié)束讀取,所以程序員應(yīng)該確保buffer的空間足夠大,以便在執(zhí)行讀操作時(shí)不發(fā)生溢出。
6、C語言的gets函數(shù)一般包含在stdio.h頭文件里,如果沒有包含比頭文件那可能會(huì)有問題。第二種情況包含了還出問題,說明你的編譯器已經(jīng)不支持這個(gè)函數(shù)了,這個(gè)函數(shù)非常不安全,容易造成溢出,建議換成fgets函數(shù)。
1、因?yàn)槟x的x為字符型數(shù)據(jù),那么它對(duì)應(yīng)的輸入輸出格式符為%c,但是您在輸入語句中寫的是%s,是字符串格式,不符合字符型單個(gè)變量的輸入輸出。
2、scanf_s(%d%s%f%f%f, &pStu[i].num,pStu[i].name,... // %s對(duì)應(yīng)的是數(shù)組pStu[i].name,不需要&。
3、沒有代碼,不太好判斷。但是榮異常看,應(yīng)該是溢出問題。我懷疑是你打開文件的時(shí)候,沒有判斷fopen函數(shù)的返回值是否為NULL,就往里寫東西。fp = fopen();然后判斷fp是否為NULL。如果不是這個(gè)原因,建議把代碼發(fā)出來。
4、在C語言中,如果 standalone 是一個(gè)字符串,要判斷是否等于 yes (區(qū)分大小寫)的話,應(yīng)該是要先包含頭文件string.h,然后用函數(shù)表達(dá)式 strcmp(standalone,yes)==0 來表示的。
文章名稱:C語言中危險(xiǎn)函數(shù) c語言中的危險(xiǎn)函數(shù) realpath
當(dāng)前地址:http://chinadenli.net/article13/dshdjds.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)