[問題] 2D動態陣列傳值到函式(已解決)

看板C_and_CPP (C/C++)作者 (ckp4131025)時間16年前 (2009/12/17 00:54), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
size是由使用者輸入的值,小於5; //int transpose(int (*A)[5],int (*At)[5],int size); //int transpose(int **A,int **At,int size); int main{ int **A = NULL; A = new int *[size]; for (int i = 0; i < size; i++) { A[i] = new int [size]; for (int j = 0; j < size; j++){ A[i][j] = 0; } } int **At = NULL; At = new int *[size]; for (int i = 0; i < size; i++) { At[i] = new int [size]; for (int j = 0; j < size; j++){ At[i][j] = 0; } } transpose(A,At,size);編譯出錯是在這邊 // cannot convert `int***' to `int (*)[5]' for argument `1' to `int transpose(int (*)[5], int (*)[5], int)' for (int i = 0; i < size; i++) delete [] A[i]; delete [] A; A = NULL; for (int i = 0; i < size; i++) delete [] At[i]; delete [] At; At = NULL; //int transpose(int (*A)[5],int (*At)[5],int size) int transpose(int **A,int **At,int size) {} 請問應該怎麼修改呢?? 抓不太清楚方向@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.212.7 ※ 編輯: ckp4131025 來自: 140.114.212.7 (12/17 00:56)

12/17 01:24, , 1F
如果你現在兩個array都是動態要來的, transpose()裡傳的
12/17 01:24, 1F

12/17 01:25, , 2F
就直接用int **A與int **At; int (*A)[5]是讓你傳入
12/17 01:25, 2F

12/17 01:26, , 3F
local的int a[5][5]的a時可以用的; 既然現在A與At都是
12/17 01:26, 3F

12/17 01:26, , 4F
new來的就不用這麼做了; 應該, 也不能這麼做....@_@"
12/17 01:26, 4F

12/17 01:33, , 5F
以解決^^
12/17 01:33, 5F
※ 編輯: ckp4131025 來自: 140.114.212.7 (12/17 01:35)
文章代碼(AID): #1BAH3UmD (C_and_CPP)
文章代碼(AID): #1BAH3UmD (C_and_CPP)