[問題] 如何回傳一陣列..(DONE)

看板C_and_CPP (C/C++)作者 (蟑螂)時間15年前 (2010/11/08 20:04), 編輯推噓2(2018)
留言20則, 6人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 我想回傳一陣列 可是不管怎模做都做不到=口= 希望得到的正確結果: 呼叫可以在test函數中印出從getRandom12產生的陣列 程式跑出來的錯誤結果: error無法由 'int' 轉換為 'int *' 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) c++ 2010 express 有問題的code: (請善用置底文標色功能) int getRandom12()//取得12個隨機值 { int a[12]={0}; int t; for(int i=0;i<12;++i) { a[i]=random(50)+50; } return *a;//回傳陣列起始位置 } void test() { int *b=getRandom12(); for(int i=0;i<12;++i) cout<<b[i]<<" "; } 補充說明: )))DONE感謝((( 原程式碼改動 int *getRandom12() int *a=new int[12]; return *a; -- by 嘎抓 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.240.176.185

11/08 20:05, , 1F
const int A[] 這樣?
11/08 20:05, 1F

11/08 20:09, , 2F
=口="對不起 不是很了解你的意思..
11/08 20:09, 2F

11/08 20:11, , 3F
a=new int[12];
11/08 20:11, 3F

11/08 20:11, , 4F
你的a[12]在離開那個函式之後就會釋放掉了
11/08 20:11, 4F

11/08 20:12, , 5F
還有你要return a就好,a就是代表陣列的起始位置
11/08 20:12, 5F

11/08 20:13, , 6F
所以你才會出現那個error
11/08 20:13, 6F

11/08 20:13, , 7F
寫得不完整@@" int a[12]改成int *a=new int[12];
11/08 20:13, 7F

11/08 20:17, , 8F
T大的 new int 是什麼意思...
11/08 20:17, 8F

11/08 20:19, , 9F
11/08 20:19, 9F

11/08 20:19, , 10F
http://nopaste.csie.org/92289 上面有錯,修正一下
11/08 20:19, 10F
感恩~剛好用/陣列 /(回)傳 /一(維) 有找到相關文章做修改了 感謝~

11/08 20:20, , 11F
向系統要一塊空間用來存放int
11/08 20:20, 11F
了解~ 可是跟直接int a[12] 差別在哪裡@@"

11/08 20:22, , 12F
http://nopaste.csie.org/c8273 這是另一種寫法
11/08 20:22, 12F
喔喔~原本也有想到這種 可是不知道在test裡面i也要從0跑到11~ → james732:關於 new 的說明:http://ppt.cc/7qA( 11/08 20:23 感謝 小弟研讀去 感謝大家 ※ 編輯: mosquito147 來自: 210.240.176.185 (11/08 20:26)

11/08 20:31, , 13F
我覺得從test裡面new array 再丟入function裡面 直接做修改
11/08 20:31, 13F

11/08 20:31, , 14F
比較好 不然每call一次就new一個 而且又沒有回收機制
11/08 20:31, 14F

11/08 20:34, , 15F
樓上說的沒錯,在test結尾建議加上delete []b;比較好
11/08 20:34, 15F

11/08 20:43, , 16F
最根本的方法就是「傳物件」, 記憶體位址這樣傳來傳去
11/08 20:43, 16F

11/08 20:44, , 17F
很容易遺失掉, 寫 C++ 請愛用 vector 好嗎
11/08 20:44, 17F

11/08 20:49, , 18F
11/08 20:49, 18F

11/08 20:53, , 19F
太常寫C就會不小心忘了C++有vector這個好物 XD
11/08 20:53, 19F

11/08 21:23, , 20F
收下vector寫法進腦袋 感謝您:)
11/08 21:23, 20F
文章代碼(AID): #1Cr-TaMZ (C_and_CPP)
文章代碼(AID): #1Cr-TaMZ (C_and_CPP)