第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于C代碼報(bào)不安全的時(shí)候怎么辦?我是在vs2015中運(yùn)行的,像c#中那樣在語(yǔ)句前加unsafe{}不好使啊。

關(guān)于C代碼報(bào)不安全的時(shí)候怎么辦?我是在vs2015中運(yùn)行的,像c#中那樣在語(yǔ)句前加unsafe{}不好使啊。

C
超人7號(hào) 2016-02-04 05:21:12
報(bào)錯(cuò)信息:嚴(yán)重性 代碼 說(shuō)明 項(xiàng)目 文件 行 禁止顯示狀態(tài)錯(cuò)誤 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. struc_ary c:\users\aaron\documents\visual studio 2015\projects\struc_ary\struc_ary\源.c 24原始代碼#include<stdio.h>struct Student{ int id; char ?name[10]; char sex; int age; float score; char addr[30];};?int main(void){ struct ?Student sda[5] = { {1001,"xiaoming",'M',20,60.4,"chong qing" }, {1002,"nai lv",'M',23,90,"qingdao"}, {1003,"hong",'w',23,69,"henan"}, {1004,"arrm",'m',33,60,"hill lk" }, {1005,"qinyang",'m,',33,34,"jiao pi gou"}}; int id = 0; int n = 0; printf("please input ?student id :"); scanf("%d", &id); for ( n = 0; n < 5; n++) { if (id==sda[n].id) { printf("%d,%s,%c,%d,%0.3f,%s\n", sda[n].id, sda[n].name, sda[n].sex, sda[n].age, sda[n].score, sda[n].addr); break; } } if (n==5) { printf("not found\n"); } getch(); return 0;}
查看完整描述

4 回答

已采納
?
MadMarical

TA貢獻(xiàn)79條經(jīng)驗(yàn) 獲得超122個(gè)贊

你好。你此時(shí)定義了一個(gè)id為int型,但是你的輸入計(jì)算機(jī)是沒(méi)法控制的。int型在內(nèi)存中開(kāi)辟的大小有限,你如果輸入12345678919010101010010101010101010101010。如此大一串?dāng)?shù),如果你進(jìn)行了異常判斷當(dāng)然沒(méi)問(wèn)題,但是你沒(méi)進(jìn)行異常判斷所以scanf會(huì)存在溢出風(fēng)險(xiǎn),一旦發(fā)生溢出不處理,程序就會(huì)崩潰,這是為什么報(bào)錯(cuò)的原因。而scanf_s輸入流則不同,它就是為了避免這種情況而誕生的,比如說(shuō)輸入char a[20] scanf_s("%s",a,20);這樣一來(lái),編譯器就知道了這個(gè)輸入長(zhǎng)度最多為20,相當(dāng)于幫你處理了異常。

以上是我的淺見(jiàn),歡迎交流。

查看完整回答
2 反對(duì) 回復(fù) 2016-02-04
?
H1_Justin

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊

#define _CRT_SECURE_NO_WARNINGS

查看完整回答
反對(duì) 回復(fù) 2016-02-04
?
超人7號(hào)

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊

我把scanf();換成scanf_s();就生成通過(guò)?我不理解為啥?

如果真的在c代碼遇到提示代碼不安全我應(yīng)怎么做?求前輩指教啊

查看完整回答
反對(duì) 回復(fù) 2016-02-04
  • 4 回答
  • 0 關(guān)注
  • 12081 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)