版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、找錯(cuò)
voidtest1()
{
charstring[10];
char*str1="0123456789";
strcpy(string,str1);
}
這里string數(shù)組越界,因?yàn)樽址L度為10,還有一個(gè)結(jié)束符‘\0’。所以總共有11個(gè)字符長度。string數(shù)組大小為10,這里越界了。
PS:使用strcpy函數(shù)的時(shí)候一定要注意前面目的數(shù)組的大小一定要大于后面字符串的大小,否則便是訪問越界。
voidtest2()
{
charstring[10],str1[10];
for(i=0;i<10;i++)
{
str1[i]='a';
}
strcpy(string,str1);
}
這里有一個(gè)一眼就能看出的問題,那就是變量i沒有定義,這在代碼編譯階段編譯器可以幫你發(fā)現(xiàn),很容易搞定。然而很多問題是自己造成的漏洞,編譯器是幫不上什么忙的。這里最大的問題還是str1沒有結(jié)束符,因?yàn)閟trcpy的第二個(gè)參數(shù)應(yīng)該是一個(gè)字符串常量。該函數(shù)就是利用判斷第二個(gè)參數(shù)的結(jié)束符來得到是否拷貝完畢。所以在for循環(huán)后面應(yīng)加上str1p[9]=‘\0’;
PS:字符數(shù)組和字符串的最明顯的區(qū)別就是字符串會(huì)被默認(rèn)的加上結(jié)束符‘\0’。
voidtest3(char*str1)
{
charstring[10];
if(strlen(str1)<=10)
{
strcpy(string,str1);
}
}
這里的問題仍是越界問題。strlen函數(shù)得到字符串除結(jié)束符外的長度。如果這里是<=10話,就很明顯越界了。
小結(jié):上面的三個(gè)找錯(cuò)的函數(shù),主要是考查對(duì)字符串和字符數(shù)組的概念的掌握以及對(duì)strcpy函數(shù)和strlen函數(shù)的理解。
2、找錯(cuò)
DSNget_SRM_no()
{
staticintSRM_no;
intI;
for(I=0;I<MAX_SRM;I++)
{
SRM_no%=MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return(NULL_SRM);
else
returnSRM_no;
}
這里for循環(huán)的判斷語句是后來我加上的,估計(jì)在網(wǎng)上流傳的時(shí)候被人給弄丟了,根據(jù)對(duì)程序的分析,給補(bǔ)上了。估計(jì)錯(cuò)誤應(yīng)該不是這兒。
5、a[q-p]=?
inta[3];
a[0]=0;a[1]=1;a[2]=2;
int*p,*q;
p=a;
q=&a[2];
很明顯:a[q-p]=a[2]=2;
6、內(nèi)存空間占用問題
定義int**a[3][4],則變量占有的內(nèi)存空間為:16位系統(tǒng)24,32位編譯系統(tǒng)中是48.
PS:公式:3*4*sizeof(int**).
7、程序編寫
編寫一個(gè)函數(shù),要求輸入年月日時(shí)分秒,輸出該年月日時(shí)分秒的下一秒。如輸入2004年12月31日23時(shí)59分59秒,則輸出2005年1月1日0時(shí)0分0秒。
voidResetTheTime(int*year,int*month,int*date,int*hour,int*minute,int*second)
{
intdayOfMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(*year<0
||*month<1||*month>12||
*date<1
||*date>31||*hour<0
||*hour>23||
*minute<0||*minute>59||*second<0||*second>60)
return;
if(*year%400==0||*year%100!=0&&*year%4==0)
dayOfMonth[1]=29;
if(*second>=60)
{
*second=0;
*minute+=1;
if(*minute>=60)
{
*minute=0;
*hour+=1;
if(*hour>=24)
{
*hour=0;
*date+=1;
if(*date>dayOfMonth[*month-1])
{
*date=1;
*month+=1;
if(*month>12)
{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 完善長期護(hù)理保險(xiǎn)制度促進(jìn)居家養(yǎng)老
- 互聯(lián)網(wǎng)移動(dòng)技術(shù)
- 2026年劇本殺運(yùn)營公司用火用電安全管理制度
- 2026年劇本殺運(yùn)營公司新手玩家引導(dǎo)服務(wù)制度
- 2025年農(nóng)業(yè)行業(yè)智慧農(nóng)業(yè)技術(shù)應(yīng)用與產(chǎn)量分析報(bào)告
- 2026年清潔能源行業(yè)創(chuàng)新報(bào)告及未來五至十年行業(yè)發(fā)展趨勢(shì)報(bào)告
- 2025 小學(xué)五年級(jí)道德與法治新時(shí)代好少年標(biāo)準(zhǔn)課件
- 云技術(shù)開發(fā)介紹
- 護(hù)理開題報(bào)告技術(shù)路線
- 杭州會(huì)計(jì)面試題目及答案
- 中遠(yuǎn)海運(yùn)集團(tuán)筆試題目2026
- 飛利浦錄音筆VTR7000使用手冊(cè)
- 2024外研版新教材七年級(jí)上冊(cè)英語新課程內(nèi)容解讀課件(深度)
- 中醫(yī)耳鼻咽喉科學(xué)智慧樹知到答案2024年浙江中醫(yī)藥大學(xué)
- 應(yīng)征公民體格檢查表
- 動(dòng)靜脈內(nèi)瘺球囊擴(kuò)張術(shù)
- JTG-D40-2002公路水泥混凝土路面設(shè)計(jì)規(guī)范-PDF解密
- 水廠及管網(wǎng)改擴(kuò)建工程施工節(jié)能降耗主要措施
- 2023-2024學(xué)年貴州省遵義市小學(xué)語文六年級(jí)期末評(píng)估測(cè)試題詳細(xì)參考答案解析
- 銷售心理學(xué)全集(2022年-2023年)
- 變態(tài)反應(yīng)課件
評(píng)論
0/150
提交評(píng)論