Re: [問題] 請問C語言函式回傳二維陣列的問題?
看板C_and_CPP (C/C++)作者descent (「雄辯是銀,沉默是金」)時間4年前 (2020/12/08 10:59)推噓3(3推 0噓 0→)留言3則, 3人參與討論串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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-2
34