[問題] 請問C語言函式回傳二維陣列的問題?

看板C_and_CPP作者 (BMW 428i)時間3年前 (2020/12/07 23:40), 編輯推噓3(303)
留言6則, 5人參與, 3年前最新討論串1/2 (看更多)
各位C語言的強者 請問一下,我想要用C語言的函式回傳一個二維陣列 但是不管我怎麼改,雖然可以執行正確但是就是會有警告 的訊息發生 請問我哪邊需要強制轉換或是修正呢??? int * TWOARRAY(void); int main(int argc, char **argv) { int (*twoarr)[4]=TWOARRAY(); for(int x=0;x<3;x++) { for(int y=0;y<4;y++) { printf("%d ",*(*(twoarr+x)+y)); } printf("\n"); } return 0; } int *TWOARRAY(void) { //int **ptr2=(int**)malloc(3*sizeof(int*)); static int number[3][4]={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; return number; } 編譯之後出現警告訊息 initialization from incompatible pointer type -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.90.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1607355644.A.1C4.html

12/07 23:44, 3年前 , 1F
[][]與**並不是相同的東西
12/07 23:44, 1F

12/08 00:27, 3年前 , 2F
重讀指標
12/08 00:27, 2F

12/08 00:53, 3年前 , 3F
int *TWOARRAY(void) 改成int **TWOARRAY(void)試試看
12/08 00:53, 3F

12/08 00:58, 3年前 , 4F
我猜是int* 轉成int**的關係
12/08 00:58, 4F

12/08 01:13, 3年前 , 5F
指向整數陣列的指標≠指向整數的指標
12/08 01:13, 5F

12/08 11:18, 3年前 , 6F
比起二維陣列,我比較喜歡想成陣列的陣列,比較直觀
12/08 11:18, 6F
文章代碼(AID): #1Vpapy74 (C_and_CPP)
文章代碼(AID): #1Vpapy74 (C_and_CPP)