歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!
咨詢熱線 400-001-5729
2021-12-31 10:22:32|已瀏覽:4497次
我們用C/C++開發(fā)的過(guò)程中,總是有一個(gè)問(wèn)題會(huì)給我們帶來(lái)苦惱。這個(gè)問(wèn)題就是函數(shù)內(nèi)和函數(shù)外代碼需要通過(guò)一塊內(nèi)存來(lái)交互(比如,函數(shù)返回字符串),這個(gè)問(wèn)題困擾和很多開發(fā)人員。如果你的內(nèi)存是在函數(shù)內(nèi)棧上分配的,那么這個(gè)內(nèi)存會(huì)隨著函數(shù)的返回而被彈棧釋放,所以,你一定要返回一塊函數(shù)外部還有效的內(nèi)存。
這是一個(gè)讓無(wú)數(shù)人困擾的問(wèn)題。如果你一不小心,你就很有可能在這個(gè)上面犯錯(cuò)誤。當(dāng)然目前有很多解決方法,如果你熟悉一些標(biāo)準(zhǔn)庫(kù)的話,你可以看到許多各式各樣的解決方法。大體來(lái)說(shuō)有下面幾種:3)第三種方式顯得比較另類,他利用了static的特性,static的棧內(nèi)存一旦分配,那這塊內(nèi)存不會(huì)隨著函數(shù)的返回而釋放,而且,它是全局可見的(只要你有這塊內(nèi)存的地址)。所以,有一些函數(shù)使用了static的這個(gè)特性,即不用使用堆上的內(nèi)存,也不需要用戶傳入一個(gè)buffer和其長(zhǎng)度。從而,使用得自己的函數(shù)長(zhǎng)得很漂亮,也很容易使用。
本文由培訓(xùn)無(wú)憂網(wǎng)達(dá)內(nèi)教育專屬課程顧問(wèn)老師整理發(fā)布,更多C語(yǔ)言課程信息可關(guān)注培訓(xùn)無(wú)憂網(wǎng)C語(yǔ)言培訓(xùn)頻道或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://www.dedgn.cn/news-id-11440.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注c語(yǔ)言頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050