c语言返回一个数组
答:在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式:int *int_array_create(int n)//...
答:define MIN(x,y)int * add_1();main(){int * p = add_1();int b[5];for(int i=0;i<5;i++){ b[i] = *(p+i);} for(i=0;i<5;i++){ printf("%d",b[i]);}} int * add_1(){ int static a[5]={1,2,3,4,5};return a;} ...
答:1、注意C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。2、在C/C++中,一般有两种方法来返回一个数组。第一种方法:返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组例子如下:#include...
答:// 方法1,用静态变量进行返回 char *SubFunction(void){ static char szText[5] = "adfa"; // 用静态空间 //对p进行赋值操作 return szText;} void Caller() // 这个函数调用SubFunction { TRACE("%s\n", SubFunction);} // 方法2,用指针传递 void SubFunction(char *pText1, char *p...
答:1、我们首先定义一个二级指针和一个行列变量[int ** array,row,column;]。2、然后我们编写进入行和列的语句,代码如图所示。3、接下来我们可以用一维数组打开一维一维数组。4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。5、...
答:你想返回一个数组,因为你在一个函数内创建了数组,属于局部变量,所以他在stack部分,而stack部分是用后类似于销毁的,你返回的地址类似于一块垃圾的地址,所以编译警告。你要想返回函数内创建的数组地址的话需要 //inside a function{ // n is the size of the array; int* array = (int...
答:不能直接返回一个数组,但是可以用其他方式实现类似功能。方法1:利用全局变量 分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值...
答:由于C/C++是允许返回结构体的,可以定义一个结构体模板,把数组作为成员安排在其中,函数中临时声明结构体变量,操作其中的数组;完毕后返回结构体变量,在主调函数中用同类型的结构体变量接收就可间接实现“返回一个数组”。举例代码如下:include "stdio.h"struct A{int m[30];//把数组m安排在结构...
答:c语言没有直接读取返回数组的函数。看你问题里文件内容格式是:一行一个字符串回车换行。那么,用fgets一次读一行,你写循环调用这个fgets函数把读取的值放在数组里。至于你说的数组长度宽度不定,在c里需用malloc动态申请内存。方法1:用fseek和ftell获取整个文件字节数,然后用malloc申请一个整个文件大小的...
答:数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:int g_a[4] = {1,2,3,4};int * retn_arrary() //返回值用指针类型即要。{return g_a; }
网友评论:
年俗13417006975:
怎么使C语言的函数返回值为一个数组 -
62523伍哲
: // 方法1,用静态变量进行返回 char *SubFunction(void) { static char szText[5] = "adfa"; // 用静态空间 //对p进行赋值操作 return szText; } void Caller() // 这个函数调用SubFunction { TRACE("%s\n", SubFunction); }// 方法2,用指针传递 ...
年俗13417006975:
C语言中如何从函数中返回一个数组 -
62523伍哲
: 有一种方法可以做到, 例如 int *creat() { int *p=(*int)malloc( 你要的大小); return p; } 在开辟了一个数组,但到最后不要忘了使用free()把内存返回系统;
年俗13417006975:
C语言返回数组怎样表示 -
62523伍哲
: 以数组名称作为参数,在函数内对形式参数数组所进行的操作都是在实际参数的存储空间进行的,全部都能返回给调用函数. 也就是说用数组名称作参数,在被调用函数内对该数组的所有操作,都能够自动返回.
年俗13417006975:
C语言里返回一个数组的函数该怎么样写 -
62523伍哲
: C语音没有直接返回一个数组的说法,要得到一个数组的返回值,一般做法有几点:1. 传入一个指向数组指针变量,在函数内部对指针地址内的值进行修改2. 函数内部申请动态内存,将数据保存到这块内存后返回该动态内存的指针,最后需要手动释放这块内存3. 使用静态变量(这个方法不建议使用,静态、全局变量很容易导致多线程编程出问题)
年俗13417006975:
C语言函数中返回数组 -
62523伍哲
: 局部变量在函数返回后自动释放所占的内存,此时系统返回的是一个任意的内存地址,你当然得不到期待的答案
年俗13417006975:
c语言中函数能返回一个数组吗 -
62523伍哲
: 在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组. 在大多数情况下,一维数组和一维指针是可以通用的.比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回.如出错,返回空指针NULL. 代码可以写成如下形式: int *int_array_create(int n)//参数n为数组元素个数 { int *r; if(n<=0) return NULL;//参数错误 r = (int *)malloc(sizeof(int)*n);//申请内存空间,大小为n个int长度. return r;//返回得到的整型数组的指针. }
年俗13417006975:
C语言怎么让“函数”返回“指针数组” -
62523伍哲
: 首先,你不应该返回局部变量的指针,因为局部变量在离开函数后就会被销毁.如果你想这样返回一个数组的话,你应该malloc出一个数组来返回. 至于应该return什么,return (malloc出来的那个指针)就可以了. 例如 int** foo() { int **p = (int **)malloc(sizeof(int *)*10); ... ... ... return p; } 这个p指向一个内存段,这个内存段存有十个int*类型的元素.
年俗13417006975:
在C中如何使函数返回数组 -
62523伍哲
: Java语言的函数可以轻易的返回一个数组,而C/C++却不能直接返回一个数组.这是由于在C/C++中,数组不是一种类型,因此不能被直接返回. 在C/C++中,一般有两种方法来返回一个数组. 第一种方法: 返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组 例子如下:#include #include int (*retArray())[10]{int (*a)[10];int i=0;/*动态开辟空间*/ a=calloc(10,sizeof(int));/*赋值*/for(i=0;i
年俗13417006975:
高人指导!!C语言中如果一个函数返回一个数组,可以实现吗,如果能够实现怎么传递他的值??? -
62523伍哲
: 你可以把数组名做参数,直接传入函数操作就可以了,如果非要return的话,操作起来可就麻烦了,要用动态分配才行
年俗13417006975:
关于c语言返回数组
62523伍哲
: 下面例子通过参数返回 #include <stdio.h> void fun(int a[5][5]) { a[3][3]=100; } int main() { int num[5][5]={0}; int i,j; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%4d ",num[i][j]); printf("\n"); } printf("\n"); fun(num); for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%4d ",num[i][j]); printf("\n"); } }