从函数返回一个数组的2种方法 (C专家编程 p230)
2013-05-19 16:07
309 查看
严格来说,无法从函数返回一个数组,但可以从函数返回一个指向任何数据结构的指针,包括一个指向数组的指针。
一种方式如下:
千万要注意:不能从函数中返回一个指向函数的局部变量的指针。
另一种方式如下:
分享到:
一种方式如下:
#include <stdio.h> #include <stdlib.h> int (*func())[20];//func是一个函数,它返回一个指向包括20个int元素的数组的指针 int main(void) { int (*result)[20]; int i = 0; result = func(); for(i = 0; i < 20; i++){ printf("%d/n", (*result)[i]); } free(result); exit(0); } int (*func())[20] { int (*a)[20]; int i = 0; a = calloc(20, sizeof(int)); if(a == NULL){ perror("calloc error"); exit(1); } for(i = 0; i < 20; i++){ a[0][i] = i; } return a; } |
另一种方式如下:
#include <stdio.h> #include <stdlib.h> struct tag{ int array[20]; }x, y; struct tag func(void); int main(void) { int i; x = func(); for(i = 0; i < 20; i++){ printf("%d/n", x.array[i]); } exit(0); } struct tag func() { int i; for(i = 0; i < 20; i++){ y.array[i] = i; } return y; }
分享到:
相关文章推荐
- 从函数返回一个数组的2种方法 (C专家编程 p230)
- 编程之美 - 写一个函数,返回数组中所有元素被第一个元素除的结果
- C专家编程 十五 使用指针向函数传递一个多维数组
- 10.6 分别用字符数组和字符指针作函数参数两种方法编程实现在字符串每个字符间插入一个空格的功能
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 编程之美_001写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 给Array本地对象增加一个原型方法,他的用途是删除数组中重复的条目,并将新的数组返回
- 使用指针从函数返回一个数组
- 使用ADO.NET类及方法实现数据库的查询并返回一个Object 数组
- 【转载】让c++ 函数返回一个数组
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- 做一个返回数组的函数(例子)
- shell 向函数传递数组和从函数返回数组的一个细节问题
- 简单编程(十四)定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。
- 使用指针从函数中返回一个数组
- range() 函数创建并返回一个包含指定范围的元素的数组
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- array_flip() 函数返回一个反转后的数组