| 24小時(shí)熱門(mén)版塊排行榜 |
| 2 | 1/1 | 返回列表 |
| 查看: 1909 | 回復(fù): 6 | ||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | ||
[求助]
VC++中函數(shù)返回?cái)?shù)組指針或者帶指針的結(jié)構(gòu)體的編譯方式是否可?
|
||
|
偶以前經(jīng)常采用這種方式來(lái)進(jìn)行C++的編程,只是在用delete釋放內(nèi)存時(shí)需要小心一些。 用這種方式編程的一個(gè)好處在于,比如計(jì)算矩陣運(yùn)算,例如A+B時(shí),可采用運(yùn)算符+的重載來(lái)進(jìn)行,這樣在使用程序包時(shí)會(huì)很方便。 可最近喜歡在結(jié)構(gòu)體中的使用析構(gòu)函數(shù),發(fā)現(xiàn)有個(gè)問(wèn)題,就是子函數(shù)返回結(jié)構(gòu)體時(shí),會(huì)自動(dòng)執(zhí)行析構(gòu)函數(shù)(即使當(dāng)此結(jié)構(gòu)體為外部變量時(shí)依然如此),因此把結(jié)構(gòu)體中的指針內(nèi)存提早釋放,導(dǎo)致返回的結(jié)構(gòu)體中的指針也相應(yīng)被釋放,最終出錯(cuò)。 我看書(shū)中的程序范例在計(jì)算矩陣或者多項(xiàng)式時(shí),都不是采用運(yùn)算符重載,而是用常規(guī)的函數(shù),把所用用到的結(jié)構(gòu)體都用加&的方式賦過(guò)來(lái),才不會(huì)被析構(gòu)函數(shù)釋放,可這種操作顯然太麻煩?但不知道是不是以前我的編程方式,本身就是一種錯(cuò)誤的習(xí)慣,還是說(shuō)干脆放棄使用析構(gòu)函數(shù),每次手動(dòng)釋放內(nèi)存?可是有沒(méi)有更好的方式可以二者兼得呢? |
新蟲(chóng) (初入文壇)
|
【VC++中函數(shù)返回?cái)?shù)組指針或者帶指針的結(jié)構(gòu)體的編譯方式是否可取?】 題目上問(wèn)的那兩個(gè)問(wèn)題: 變量是具有生存周期的。在某個(gè)函數(shù)中聲明、且定義的變量(糾結(jié),這個(gè)問(wèn)題讓我想起了extern中的declares but does not define,- -||||黑線),都會(huì)在函數(shù)return之后結(jié)束生存周期,無(wú)論那個(gè)變量是指針還是結(jié)構(gòu)體。 如果你的結(jié)構(gòu)體(class example)重載了‘=’,能夠賦值,那么函數(shù)返回值為普通結(jié)構(gòu)體,做法可行。 返回帶指針的結(jié)構(gòu)體,要防止指針指向的內(nèi)存,因結(jié)束生命周期而失效。(尤其是指向函數(shù)變量的,“過(guò)期就作廢”;但是用new, malloc開(kāi)辟空間的不會(huì))。 我主要是做圖像方面。會(huì)用到很多矩陣。圖像矩陣類cvMat操作的時(shí)候,基本上都是用指針。 cvMat* cvCreateMat ( int rows, int cols, int type ); 是建立矩陣。返回值是指針。 例如mat1 = cvCreateMat( 3, 4, sizeof(char) ) 無(wú)論執(zhí)行什么函數(shù),最通常的做法就是,把mat1指針各種傳遞。 |
| 2 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 299求調(diào)劑 +4 | shxchem 2026-03-20 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 296求調(diào)劑 +6 | www_q 2026-03-18 | 10/500 |
|
|
[考研] 274求調(diào)劑 +10 | S.H1 2026-03-18 | 10/500 |
|
|
[考研] 材料專碩英一數(shù)二306 +7 | z1z2z3879 2026-03-18 | 7/350 |
|
|
[考研] 324求調(diào)劑 +5 | lucky呀呀呀鴨 2026-03-20 | 5/250 |
|
|
[考研] 求調(diào)劑 +5 | Mqqqqqq 2026-03-19 | 5/250 |
|
|
[考研] 一志愿華中農(nóng)業(yè)071010,總分320求調(diào)劑 +3 | 困困困困坤坤 2026-03-20 | 3/150 |
|
|
[考研] 一志愿北京化工大學(xué)0703化學(xué)318分,有科研經(jīng)歷,求調(diào)劑 +4 | 一瓶苯甲酸 2026-03-14 | 4/200 |
|
|
[考研] 295材料求調(diào)劑,一志愿武漢理工085601專碩 +5 | Charlieyq 2026-03-19 | 5/250 |
|
|
[考研] 279分求調(diào)劑 一志愿211 +10 | chaojifeixia 2026-03-19 | 11/550 |
|
|
[考研] 08工學(xué)調(diào)劑 +5 | 用戶573181 2026-03-20 | 5/250 |
|
|
[考研]
|
不想起名字112 2026-03-19 | 3/150 |
|
|
[考研] 梁成偉老師課題組歡迎你的加入 +9 | 一鴨鴨喲 2026-03-14 | 11/550 |
|
|
[考研] 085600材料與化工求調(diào)劑 +6 | 緒幸與子 2026-03-17 | 6/300 |
|
|
[考研] 0703化學(xué) 305求調(diào)劑 +4 | FY_yy 2026-03-14 | 4/200 |
|
|
[考研] 085601專碩,總分342求調(diào)劑,地區(qū)不限 +5 | share_joy 2026-03-16 | 5/250 |
|
|
[考研] 一志愿西南交大,求調(diào)劑 +4 | 材化逐夢(mèng)人 2026-03-18 | 4/200 |
|
|
[考研] 301求調(diào)劑 +9 | yy要上岸呀 2026-03-17 | 9/450 |
|
|
[考研]
|
zhouzhen654 2026-03-16 | 3/150 |
|
|
[考研] 一志愿哈工大材料324分求調(diào)劑 +5 | 閆旭東 2026-03-14 | 5/250 |
|