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

看板C_and_CPP (C/C++)作者 (「雄辯是銀,沉默是金」)時間4年前 (2020/12/08 10:59), 編輯推噓3(300)
留言3則, 3人參與, 4年前最新討論串2/2 (看更多)
TWOARRAY 是一個 function, return 一個 pointer, 這個 pointer 指向 int[4] int (* TWOARRAY(void) ) [4] { //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; } 這個寫法太複雜, 可以用 typedef typedef int (*ARRAY2)[4]; ARRAY2 TWOARRAY(void) { } 這樣比較容易理解。 ※ 引述《SST2000 (BMW 428i)》之銘言: : 各位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), 來自: 61.218.53.138 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1607396356.A.8BA.html

12/08 14:31, 4年前 , 1F
推這篇
12/08 14:31, 1F

12/09 12:29, 4年前 , 2F
應該不是太複雜 是太不直覺 因為陣列方括號得在名稱之後
12/09 12:29, 2F

12/09 21:49, 4年前 , 3F
12/09 21:49, 3F
文章代碼(AID): #1Vpkm4Yw (C_and_CPP)
文章代碼(AID): #1Vpkm4Yw (C_and_CPP)