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

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

C中字符串的問題

C中字符串的問題

C
月下狂人wzj 2015-07-26 08:18:52
/*? ? 若是? ? strcat(s2,s3);? ? strcpy(s1,s2);? ? 則無法顯示*/代碼這樣的話,應(yīng)該是整個(gè)程序都崩潰掉了,因?yàn)榍懊娴恼Z句也無法輸出? ? strcat(s2,s3);? ? strcpy(s3,s2);卻可以運(yùn)行,但是s2的內(nèi)容卻為空,長(zhǎng)度為0感覺是s2的空間問題,應(yīng)該是超出了范圍,但是沒有報(bào)異常卻可以運(yùn)行為什么?
查看完整描述

2 回答

?
onemoo

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

你的理解沒有錯(cuò),strcat strcpy 這樣的函數(shù)需要第一個(gè)參數(shù)處有足夠大的存儲(chǔ)空間來容納后面參數(shù)接入的字符串。

為什么編譯時(shí)沒有報(bào)錯(cuò)呢?

從實(shí)現(xiàn)角度說,函數(shù)將兩個(gè)參數(shù)都視作指向存儲(chǔ)空間的指針,但憑指針并不能判斷出其指向的空間有多大,函數(shù)只能從這兩處空間進(jìn)行操作,一旦在運(yùn)行中遇到空間不足,就可能會(huì)出問題。


題外話:C語言指針的設(shè)計(jì)就是為了靈活,C語言的宗旨是相信程序員,不阻止程序員做他們想做的事。所以就要求程序員對(duì)原理有充分的理解,這也是C語言“難”的原因。

其實(shí)在現(xiàn)實(shí)中,這樣的錯(cuò)誤也很常見,所謂的“緩沖區(qū)溢出”漏洞多是存儲(chǔ)空間的問題。

查看完整回答
1 反對(duì) 回復(fù) 2015-07-26
?
月下狂人wzj

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

厲害,,在請(qǐng)教下, 那為什么將s2復(fù)制給s1就直接崩潰;而s2復(fù)制給s3是直接將s2空間清0呢??

查看完整回答
反對(duì) 回復(fù) 2015-07-26
  • 2 回答
  • 0 關(guān)注
  • 1330 瀏覽

添加回答

舉報(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)