[問題] 函數傳回陣列

看板C_and_CPP (C/C++)作者 (George)時間16年前 (2009/09/13 14:51), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
CNUM e3col(CNUM z[51][1], CNUM w[51][1], CNUM e3[51][1]) { int i ,j; CNUM value[51][1]; for(i=0;i<51;i++) { for(j=0;j<1;j++) { value[i][j] = cpmul(&z[i][j],&w[i][j]); e3[i][j].rpart = value[i][j].rpart * (-1); e3[i][j].ipart = value[i][j].ipart * (-1); } } } 我想把值儲存在e3[51][1]裡面回傳到主函式~~~ 我在dev c 裡面可以執行 但是弄到 visual c 裡沒辦法使用 他會顯示 error c7416 必須傳回值 我已經把值傳入e3裡面了,應該不用再傳回值了,想說要修改成傳回矩陣 那要怎麼改!? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.74.245.165

09/13 14:58, , 1F
你宣告函式要回傳一個 CNUM 型態的資料。所以要回傳一
09/13 14:58, 1F

09/13 14:58, , 2F
個CNUM型態的資料回去?
09/13 14:58, 2F

09/13 15:05, , 3F
09/13 15:05, 3F

09/13 15:11, , 4F
問題1, 你的函數沒有回傳值, 雖然這個函數我也不懂回傳
09/13 15:11, 4F

09/13 15:11, , 5F
一個CNUM要幹麻, 因為你似乎是要把結果寫進e3[][]裡.
09/13 15:11, 5F

09/13 15:12, , 6F
問題2, 你應該在呼叫這個函數的地方/之前先配置好e3要用
09/13 15:12, 6F

09/13 15:12, , 7F
的空間(不管靜態或動態陣列), 然後把位址傳進函數, 這樣
09/13 15:12, 7F

09/13 15:16, , 8F
函數裡直接對e3的位址寫值就相當於把結果寫回去了:)
09/13 15:16, 8F

09/13 15:17, , 9F
恩 謝謝 我瞭解了
09/13 15:17, 9F
文章代碼(AID): #1Ah9QA94 (C_and_CPP)
文章代碼(AID): #1Ah9QA94 (C_and_CPP)