作者SST2000 (BMW 428i)
看板C_and_CPP
標題[問題] 請問C語言函式回傳二維陣列的問題?
時間Mon Dec 7 23:40:42 2020
各位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
→ james732: [][]與**並不是相同的東西 12/07 23:44
→ d630200x: 重讀指標 12/08 00:27
推 ucrxzero: int *TWOARRAY(void) 改成int **TWOARRAY(void)試試看 12/08 00:53
推 ucrxzero: 我猜是int* 轉成int**的關係 12/08 00:58
→ shk9cvu5ye: 指向整數陣列的指標≠指向整數的指標 12/08 01:13
推 wei115: 比起二維陣列,我比較喜歡想成陣列的陣列,比較直觀 12/08 11:18