看板 C_and_CPP 關於我們 聯絡資訊
各位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