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语言函数中怎么返回一个二维数组的主要内容,如果未能解决你的问题,请参考以下文章