a级毛片免费全部播放-a级毛片免费观看在线播放-a级毛片免费观看网站-a级毛片免费看-国产成人精品在视频-国产成人精品在线

歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!

全國(guó)切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無(wú)憂網(wǎng) > 新聞資訊 > 電腦/IT > c語(yǔ)言 >  C語(yǔ)言培訓(xùn)返回內(nèi)部靜態(tài)成員的陷阱有哪些

C語(yǔ)言培訓(xùn)返回內(nèi)部靜態(tài)成員的陷阱有哪些

來(lái)源:www.dedgn.cn 發(fā)布人:星星

2021-12-31 10:22:32|已瀏覽:4497次

C語(yǔ)言返回內(nèi)部靜態(tài)成員的陷阱

      我們用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ō)有下面幾種:
      1)在函數(shù)內(nèi)部通過(guò)malloc或new在堆上分配內(nèi)存,然后把這塊內(nèi)存返回(因?yàn)樵诙焉戏峙涞膬?nèi)存是全局可見的)。這樣帶來(lái)的問(wèn)題就是潛在的內(nèi)存問(wèn)題。因?yàn)椋绻祷爻鋈サ膬?nèi)存不釋放,那么就是memory Leak。或者是被多次釋放,從而造成程序的crash。這兩個(gè)問(wèn)題都相當(dāng)?shù)膰?yán)重,所以這種設(shè)計(jì)方法并不推薦。(在一些Windows API中,當(dāng)你調(diào)用了一些API后,你必需也要調(diào)用他的某些API來(lái)釋放這塊內(nèi)存)
      2)讓用戶傳入一塊他自己的內(nèi)存地址,而在函數(shù)中把要返回的內(nèi)存放到這塊內(nèi)存中。這是一個(gè)目前普遍使用的方式。很多Windows API函數(shù)或是標(biāo)準(zhǔn)C函數(shù)都需要你傳入一個(gè)buffer和這個(gè)buffer的長(zhǎng)度。這種方式對(duì)我們來(lái)說(shuō)應(yīng)該是屢見不鮮了。這種方式的好處就是由函數(shù)外部的程序來(lái)維護(hù)這塊內(nèi)存,比較簡(jiǎn)顯直觀。但問(wèn)題就是在使用上稍許有些麻煩。不過(guò)這種方式把犯錯(cuò)誤的機(jī)率減到了最低。

      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

留下你的信息,課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專業(yè)課程!
  • 姓名:

  • 手機(jī):

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無(wú)憂網(wǎng)
免 費(fèi) 申 請(qǐng) 試 聽
提交申請(qǐng),《培訓(xùn)無(wú)憂網(wǎng)》課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專業(yè)課程!

主站蜘蛛池模板: 国产精选莉莉私人影院 | 高清国产在线播放成人 | 亚洲国产精品久久卡一 | 久久中文字幕日韩精品 | 欧美性猛交xxxxxxxx软件 | 免费aⅴ在线 | 精品视频久久 | 久草在线免费资源 | 在线观看一区二区三区四区 | 精品免费久久久久久久 | 精品国产乱码久久久久久一区二区 | fc2在线播放 | 久久99在线 | 美国一级片在线观看 | 国产一区二区三区四区五区tv | 国产欧美精品午夜在线播放 | 日本特级淫片免费 | 久草日韩 | 免费一级毛片在线播放放视频 | 91日本在线精品高清观看 | 成年人免费网站在线观看 | 一本久道综合久久精品 | 日韩在线观看一区二区三区 | 无码精品一区二区三区免费视频 | 日本亚洲成高清一区二区三区 | 亚洲第三区 | 午夜三级理论在线观看视频 | 国产精品成人久久久久 | 足恋玩丝袜脚视频免费网站 | 日本a级精品一区二区三区 日本a级毛片免费视频播放 | 成人18免费 | 久草经典视频 | 台湾三级香港三级在线中文 | 91精品国产综合久久香蕉 | 欧美一级情欲片在线 | 欧美视频在线观看网站 | 最新国产毛片 | 99在线热播精品免费 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人香蕉久久久久 | 自拍视频啪 | 一级无毛片 |