C语言函数中怎么返回一个二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言函数中怎么返回一个二维数组相关的知识,希望对你有一定的参考价值。

#include<stdio.h> int **returnNum() int a[5][5],i,j; for(i=0;i<5;++i) for(j=0;j<5;++j) a[i][j]=i; return a;//error: cannot convert `int (*)[5]' to `int**' in return int main() //int cpy[5][5]=returnNum; // error: invalid initializer int **cpy=returnNum;//error: cannot convert `int**(*)()' to `int**' in initialization return 0;

1、我们首先定义一个二级指针和一个行列变量[int ** array,row,column;]。

2、然后我们编写进入行和列的语句,代码如图所示。

3、接下来我们可以用一维数组打开一维一维数组。

4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。

5、然后我们可以为它赋值并输出[代码如图所示]。

6、运行程序后我们可以看到这种效果。

参考技术A c语言无法返回空间,只能返回指针。
1.
函数内动态申请,返回指针,缺点是容易出现野指针,根据谁申请谁释放原则。
2.
设置全局参数,缺点全局数据稍微多了一些,而且破坏封装思想。
参考技术B #include
<stdio.h>int
*_print(int
(*_pointer)[2],int
n);void
main(void)
int
demo[2][2]=1,2,3,4;
int
*p,row;
printf("请输入行号:");
scanf("%d",&row);
p=_print(demo,row);
//
实参是二维数组名
printf("%d\n",*(p+1));
//
输出row行1列的元素/*
定义指针函数_print
形参是指向由2个元素组成的一维数组的指针
函数返回值是
地址*/int
*_print(int
(*_pointer)[2],int
n)
int
*p;
p=*(_pointer+n);
//
p的值是实参二维数组&?[n][0]的地址
return
p;
//
返回地址
希望对你能有所帮助。

C语言试题三十七之求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。

1、 题目

请编写一个函数function,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 、温馨提示

      C语言试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer每一个题目都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或者有更好的思路解决办法都可以加我微私聊,一起探讨、希望可以正真的帮助到你,同时也可以扫下面的二维码关注我微信公众号,比如你还对生活、美食或者其它方面都感兴趣,都可以加微信交流,博主擅长讲解计算机相关方面的知识、如果大家对计算机方向、前端、移动端、服务端、数据结构、算法、网络、高数等等一些列方向比较迷茫或者不知道要学哪些?或者具体怎么学?或者其它方向有任何困惑都可以找我交流,谢谢大家关注。

 

 

 

 

以上是关于C语言函数中怎么返回一个二维数组的主要内容,如果未能解决你的问题,请参考以下文章

c语言中怎么用二维数组作为函数参数

C语言中 指针做函数参数传递二维数组

C语言中如何定义一个二维数组,数组长度由输入值确定?

C语言二维数组问题

C语言函数传递二维数组

C语言中函数调用怎么返回两个值