作者fenir (severus)
看板Programming
標題[問題] C語言中如何回傳function中的陣列
時間Mon May 3 19:18:35 2010
我寫一個function,要把一個陣列A傳進去
並在function中也定義另一個陣列C
之後經過一連串的動作之後要回傳陣列C
以pointer B接收回傳回來的陣列C的位址
最後印出陣列C所有的數值
簡化過的程式碼如下
int main() {
int array_a[];
int *array_b;
array_b = function(array_a);
for loop {printf("%d", array_b[i]);}
}
int function(int *array_a) {
int array_c[];
...... (中間省略)
......
return array_c;
}
但是程式碼還是有BUG
請問要怎麼修改呢?
我記得傳入陣列位址可以用陣列的名稱表示
不用加"&"
但是以上程式碼把所有陣列改成一般變數
ex: int x; 然後pointer B改成一般變數
這樣又可以了
所以搞不懂為什麼陣列反而不行
--
1F:推 luxaky:我請香港女助理幫我看一下飛機 結果她... 01/08 20:41
2F:推 loki: 氣到懶叫彈出來 01/08 20:44
3F:推 rayman1027:樓上好糟糕 請暫時不要跟我說話 =口=01/08 20:44
4F:→ rayman1027:我是說樓樓上 01/08 20:45
5F:→ rayman1027:不 是樓樓樓上01/08 20:45
6F:→ rayman1027:............... 01/08 20:45
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.220.141
※ 編輯: fenir 來自: 140.114.220.141 (05/03 19:20)
7F:推 hilorrk:1.array_c用動態配置 114.42.113.156 05/03 19:56
8F:→ hilorrk:2.把array_b傳入func,將array_c複製過去 114.42.113.156 05/03 19:56
9F:→ hilorrk:這個問題可以參考C/C++版的新手十二戒之六 114.42.113.156 05/03 19:57
10F:推 chchwy:you must "new" 59.112.165.87 05/03 20:42
11F:→ fenir:抱歉不懂什麼是動態配置和"new"140.114.220.141 05/03 21:03
13F:→ j100002ben:動態配置要記得Free啊啊啊...140.122.165.144 05/03 23:51