C语言函数中返回数组

3; b=pop();i< for(i=0,那该怎么写呢; } int * pop() { int a[3],i; } 这样写好像不对的;i++) a[i]=i; return amain() { int b[3]

第1个回答  2020-05-05
你的程序:
main()
{
int
b[3];
b=pop();
}
int
*
pop()
{
int
a[3],i;//定义的局部变量a[3]在调用完之后自动释放其空间
for(i=0;i<3;i++)
a[i]=i;
return
a;//返回的是指向数组a[3]的地址而不是数组a[3]本身
}
注:既然上面说到调用的方法返回的是指向数组a[3]的地址,所以主函数中b接收的应该是指向数组a[3]的地址,而数组a[3]在方法调用完后又被释放了,所以b接收不到数组a[3],故出错。
正确的程序:
#include<stdio.h>
main()
{
int
b[3];
pop(b,3);
}
void
pop(int
a[],int
n)//该方法传入两个参数,第一个是传入指向数组的地址,第二个参数是传入数组的长度,不需写返回语句return,只需通过指向数组的地址的传入就可以直接将数组b[]的值改变
{
int
i;
for(i=0;i<n;i++)
a[i]=i;
}

c语言中函数能返回一个数组吗
实例2:编写函数求一维整形数组的最大值与最小值,并把最大值与最小值返回给主调函数。方法:以指针方式传递该一维数组的地址,然后把数组的最大值与数组的第一个元素交换,把数组的最小值与最后一个元素交换。函数被调用完毕后,实参数组中的第一元素为数组的最大值,实参数组中最后一个元素为数组...

C语言函数中怎么返回一个二维数组
1、我们首先定义一个二级指针和一个行列变量[int ** array,row,column;]。2、然后我们编写进入行和列的语句,代码如图所示。3、接下来我们可以用一维数组打开一维一维数组。4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。5、...

C语言函数中返回数组
main(){ int b[3];b=pop();} int * pop(){ int a[3],i;\/\/定义的局部变量a[3]在调用完之后自动释放其空间 for(i=0;i<3;i++)a[i]=i;return a;\/\/返回的是指向数组a[3]的地址而不是数组a[3]本身 } 注:既然上面说到调用的方法返回的是指向数组a[3]的地址,所以主函数中b...

C语言函数如何return数组?
数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:int g_a[4] = {1,2,3,4};int * retn_arrary() \/\/返回值用指针类型即要。{return g_a; }

C语言中,return语句怎么样返回一个数组?
由于C\/C++是允许返回结构体的,可以定义一个结构体模板,把数组作为成员安排在其中,函数中临时声明结构体变量,操作其中的数组;完毕后返回结构体变量,在主调函数中用同类型的结构体变量接收就可间接实现“返回一个数组”。举例代码如下:include "stdio.h"struct A{int m[30];\/\/把数组m安排在结构...

c语言中函数返回值可以是数组、字符串和结构体吗?
1、ANSI C语言标准,明确规定 数组类型和函数类型不可以做为返回值。解决这种返回值的方法是通过指针来间接返回,即使用数组指针和函数指针。这可以做为c语言引入指针的另一个理由。2、字符串是数组的一种,是字符数组,所以同样不可以作为返回值。3、结构体类型可以做为返回值,C语言设计者当时引入...

怎么使C语言的函数返回值为一个数组
void Caller() \/\/ 这个函数调用SubFunction { TRACE("%s\\n", SubFunction);} \/\/ 方法2,用指针传递 void SubFunction(char *pText1, char *pText2){ \/\/ 对pText1, pText2运算 strcpy(pText1, "love");strcpy(pText2, "you");return;} void Caller() \/\/ 这个函数调用SubFunction { ...

c语言中怎样返回一个数组?
在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式:int *int_array_create(int n)\/\/...

C语言中如何从函数中返回一个数组
不能返回数组,可以反回数组的首地址,也就是返回指针 至于数组的大小可以设置一个输出型变量指针,在调用函数的时候传到函数里,做一下记录.

在C语言中如何使函数返回数组
在C\/C++中,一般有两种方法来返回一个数组。第一种方法:返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组例子如下:#include#includeint (*retArray())[10]{int (*a)[10];int i=0;\/*动态开辟空间*\/a=calloc(10,sizeof(...

相似回答
大家正在搜