3 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊
你想返回一個數(shù)組,因?yàn)槟阍谝粋€函數(shù)內(nèi)創(chuàng)建了數(shù)組,屬于局部變量,所以他在stack部分,而stack部分是用后類似于銷毀的,你返回的地址類似于一塊垃圾的地址,所以編譯警告。你要想返回函數(shù)內(nèi)創(chuàng)建的數(shù)組地址的話需要
//inside a function { // n is the size of the array; int * array = ( int *) malloc ( sizeof ( int )*n); /* do something with array */ return array; } |
這樣這個數(shù)組建立在heap堆上,調(diào)用完函數(shù)還在,而你返回了那個堆上數(shù)組的首地址,這樣就沒問題了。
用完free(array);
用static不推薦,用static的話會在整個程序的run time運(yùn)行時都占用空間。而是用malloc,動態(tài)申請釋放更合理。

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個贊
1、在void strcat()的strcat前添加*,表示返回char 指針。
2、strcat()應(yīng)該返回str1,即 return str1。str1是連接的結(jié)果,調(diào)用者有責(zé)任確保str1數(shù)組空間足夠大,以便在其尾部添加str2后,不會覆蓋其他數(shù)據(jù)空間。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個贊
不需要return返回,數(shù)組操作的是地址,只要你在被調(diào)函數(shù)里對數(shù)組操作了,主函數(shù)里的數(shù)組也是會變得,把子函數(shù)的return部分去掉就可以了指針也是調(diào)用地址的,一樣的,都不用返還值,都不用return
- 3 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報