新聞中心
C語(yǔ)言怎么讓一個(gè)函數(shù)返回指針
指針可以返回,但是要注意函數(shù)內(nèi)部的數(shù)組用指針?lè)祷睾螅搅撕瘮?shù)外面,這個(gè)數(shù)組已經(jīng)被釋放了。所以是個(gè)野指針,用了就死機(jī)!這種情況可以動(dòng)態(tài)申請(qǐng)一段內(nèi)存,比如malloc函數(shù),用完后再用free函數(shù)釋放內(nèi)存。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了金湖免費(fèi)建站歡迎大家使用!
首先,你不應(yīng)該返回局部變量的指針,因?yàn)榫植孔兞吭陔x開(kāi)函數(shù)后就會(huì)被銷(xiāo)毀。如果你想這樣返回一個(gè)數(shù)組的話(huà),你應(yīng)該malloc出一個(gè)數(shù)組來(lái)返回。至于應(yīng)該return什么,return (malloc出來(lái)的那個(gè)指針)就可以了。
C語(yǔ)言屬于高級(jí)編程語(yǔ)言。在C語(yǔ)言中一個(gè)函數(shù)不能返回局部地址即指針。
C語(yǔ)言指向函數(shù)的指針承載的信息比較復(fù)雜,組織起來(lái)要素要寫(xiě)全。
你把返回值寫(xiě)成指針型就可以了,具體得看你參數(shù)是怎樣的,還有返回值是什么類(lèi)型的指針:比如:int * scar(int )這個(gè)函數(shù)參數(shù)是一個(gè)整型,返回值是個(gè)整型指針。
按照這段代碼來(lái)說(shuō),int* 聲明的指針指向內(nèi)存中的一塊地址,而在這塊地址中存儲(chǔ)著一個(gè)整形數(shù)值。所以要返回這樣的值,也就相當(dāng)于是返回一個(gè)內(nèi)存地址。
有人知道c++怎么用函數(shù)返回一個(gè)指針數(shù)組么?
1、方法2:傳遞數(shù)組指針 分析:在教學(xué)過(guò)程中,我們知道C語(yǔ)言函數(shù)參數(shù)的傳遞方式有值傳遞與地址傳遞。當(dāng)進(jìn)行值傳遞時(shí),主調(diào)函數(shù)把實(shí)參的值復(fù)制給形參,形參獲得從主調(diào)函數(shù)傳遞過(guò)來(lái)的值運(yùn)行函數(shù)。
2、在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類(lèi)型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
3、首先,你不應(yīng)該返回局部變量的指針,因?yàn)榫植孔兞吭陔x開(kāi)函數(shù)后就會(huì)被銷(xiāo)毀。如果你想這樣返回一個(gè)數(shù)組的話(huà),你應(yīng)該malloc出一個(gè)數(shù)組來(lái)返回。至于應(yīng)該return什么,return (malloc出來(lái)的那個(gè)指針)就可以了。
4、include stdio.hchar *get_str(void) //返回值類(lèi)型為字符指針{ static char str[100]={0};//靜態(tài)變量初始化,只有在定義時(shí)這次完成,且初始化只執(zhí)行一次。
5、具體到這段代碼中,就是在Main中聲明int* tempA[10],把foo函數(shù)聲明為void foo(int* a[10]),調(diào)用時(shí)用foo(tempA),在foo函數(shù)中直接使用a[10]即可。
6、你想返回一個(gè)數(shù)組,因?yàn)槟阍谝粋€(gè)函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類(lèi)似于銷(xiāo)毀的,你返回的地址類(lèi)似于一塊垃圾的地址,所以編譯警告。
C語(yǔ)言怎么讓“函數(shù)”返回“指針數(shù)組”
首先,你不應(yīng)該返回局部變量的指針,因?yàn)榫植孔兞吭陔x開(kāi)函數(shù)后就會(huì)被銷(xiāo)毀。如果你想這樣返回一個(gè)數(shù)組的話(huà),你應(yīng)該malloc出一個(gè)數(shù)組來(lái)返回。至于應(yīng)該return什么,return (malloc出來(lái)的那個(gè)指針)就可以了。
在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類(lèi)型指針的方式,返回?cái)?shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。
方法1:利用全局變量 分析:全局變量作為C語(yǔ)言的一個(gè)知識(shí)點(diǎn),雖然我們都了解它的特點(diǎn),但在實(shí)際教學(xué)過(guò)程中應(yīng)用得并不是很多。
((double (*)[row])matrix);里的[row]是一個(gè)變量,而指向數(shù)組的指針 double (*matrix)[ROW]里的ROW只能使用常量,所以這里也有一個(gè)錯(cuò)誤。
函數(shù)指針的數(shù)組定義方法:返回值類(lèi)型( * 指針變量名[Number]) (形參列表)。
文章題目:c語(yǔ)言函數(shù)返回指針技巧 c語(yǔ)言返回指針值的函數(shù)
網(wǎng)站網(wǎng)址:http://www.ef60e0e.cn/article/dspgjdi.html