亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下例子,請問該怎么返回一個數組?

如下例子,請問該怎么返回一個數組?

C PHP
慕田峪7331174 2022-04-16 15:11:56
但return它的指針的時候, 編譯器會警告function returns address of local variable[enabled by default]
查看完整描述

3 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

你想返回一個數組,因為你在一個函數內創建了數組,屬于局部變量,所以他在stack部分,而stack部分是用后類似于銷毀的,你返回的地址類似于一塊垃圾的地址,所以編譯警告。你要想返回函數內創建的數組地址的話需要


//inside a function{    // n is the size of the array;    int* array = (int *)malloc(sizeof(int)*n);         /*        do something with array    */    return array;}

這樣這個數組建立在heap堆上,調用完函數還在,而你返回了那個堆上數組的首地址,這樣就沒問題了。

用完free(array);

用static不推薦,用static的話會在整個程序的run time運行時都占用空間。而是用malloc,動態申請釋放更合理。


查看完整回答
反對 回復 2022-04-19
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

1、在void strcat()的strcat前添加*,表示返回char 指針。
2、strcat()應該返回str1,即 return str1。str1是連接的結果,調用者有責任確保str1數組空間足夠大,以便在其尾部添加str2后,不會覆蓋其他數據空間。

查看完整回答
反對 回復 2022-04-19
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

不需要return返回,數組操作的是地址,只要你在被調函數里對數組操作了,主函數里的數組也是會變得,把子函數的return部分去掉就可以了指針也是調用地址的,一樣的,都不用返還值,都不用return

查看完整回答
反對 回復 2022-04-19
  • 3 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號