从函数返回一个数组的2种方法 (C专家编程 p230)
来源:互联网 发布:js怎么给file控件赋值 编辑:程序博客网 时间:2024/06/05 01:54
严格来说,无法从函数返回一个数组,但可以从函数返回一个指向任何数据结构的指针,包括一个指向数组的指针。
一种方式如下:
#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)
- 从函数返回一个数组的2种方法 (C专家编程 p230)
- 《C专家编程》:函数如何返回一个数组(九)
- 【C++】从函数返回数组
- C语言 通过指针从函数返回一个数组
- C专家编程 十五 使用指针向函数传递一个多维数组
- 使用指针从函数返回一个数组
- 编程基础-------C语言函数返回二维数组的做法
- C`函数的返回值为一个二维数组
- shell 向函数传递数组和从函数返回数组的一个细节问题
- 使用数组指针从函数中返回一个数组
- 从函数返回数组
- C专家编程 十二 C语言的多维数组
- 《C专家编程》的笔记-指针与数组的区别
- 《C专家编程》:指针和数组的区别详解(四)
- c语言,c++函数返回一个数组,二维数组
- 使用指针从函数返回一个二维数组
- 使用指针从函数中返回一个数组
- bfs+哈希表 + 三杯水
- JPA是什么?怎样开发JPA应用?
- AndEngine开发中的纹理,即texture
- BIOS 工作流程解析
- HDU4552(模拟)
- 从函数返回一个数组的2种方法 (C专家编程 p230)
- QProcess调用外部程序:QProcess::start与QProcess::execute
- hadoop 远程调试
- 在C中如何使函数返回数组
- java特点
- Struts2源码分析二
- 面试总结
- anti_nim反尼姆博弈 hdu2509
- 如何用“个人电脑+ADSL+路由器+花生壳”建个人网站