作者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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1607355644.A.1C4.html
1F:→ james732: [][]与**并不是相同的东西 12/07 23:44
2F:→ d630200x: 重读指标 12/08 00:27
3F:推 ucrxzero: int *TWOARRAY(void) 改成int **TWOARRAY(void)试试看 12/08 00:53
4F:推 ucrxzero: 我猜是int* 转成int**的关系 12/08 00:58
5F:→ shk9cvu5ye: 指向整数阵列的指标≠指向整数的指标 12/08 01:13
6F:推 wei115: 比起二维阵列,我比较喜欢想成阵列的阵列,比较直观 12/08 11:18