[問題] 矩陣 到函式中再指定大小 是否可行?

看板C_and_CPP (C/C++)作者 (阿真)時間16年前 (2009/08/03 22:17), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
類似以下的關念 //主程式 double *matrix; //宣告指標 functionA(matrix); //函式A int functionA(&matrix) { int M=5; int N=3; matrix = (double *)malloc(M * N * sizeof(double)); return 0; } 函式A就是個配置矩陣大小的作用 不過在matrix還沒被配置時 可否傳址給函式A呢?? 十誡中好像有提到這樣不行任意使用未給值的指標(因為不知道指到哪) 傳指標的址算不算使用啊?? 很怕如果剛好OK後來有問題會很麻煩 想請教一下大家 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.63.180

08/03 22:25, , 1F
這樣沒有問題,未初始化是指matrix裡存的地址不明
08/03 22:25, 1F

08/03 22:26, , 2F
然而matrix這個變數的地址是已知的。
08/03 22:26, 2F

08/03 22:30, , 3F
感謝樓上~
08/03 22:30, 3F

08/04 01:34, , 4F
你這樣寫不會過吧 要寫成 funA(double *&matrix)
08/04 01:34, 4F

08/04 02:06, , 5F
樓上這樣的語法是??
08/04 02:06, 5F

08/04 02:09, , 6F
我照本來的寫法 會過哦
08/04 02:09, 6F

08/04 02:10, , 7F
QQ29 我看錯了 囧 你的寫法是對的 原文手誤
08/04 02:10, 7F

08/04 02:12, , 8F
我是這樣 double* &matrix 所以一時看不出來 囧
08/04 02:12, 8F

08/04 10:47, , 9F
或是用funcA(&matrix)與int funcA(double **matrix_l)
08/04 10:47, 9F
文章代碼(AID): #1ATl6LIy (C_and_CPP)
文章代碼(AID): #1ATl6LIy (C_and_CPP)