C语言 c++ 在自定义函数中创建的数组 怎么在主函数中使用?

 我来答
White_MouseYBZ
2017-12-04 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6377万
展开全部

提供2个办法供参考:

  1. 把自定义函数中的数组创建为static存储性质,并把首地址及大小返回给主函数。

  2. 在自定义函数中创建数组时用动态方法建立的堆上,把首地址及大小返回给主函数,在主函数中使用完毕后释放。

追问
第一种方法会了  第二种你举个栗子呢  谢谢
追答
#include "stdio.h"
#include <stdlib.h>
int *f(int *n){//自定义函数
int i,*p;
*n=10;
p=(int *)malloc(sizeof(int)*(*n));//在堆上动态创建数组
for(i=0;i<*n;p[i++]=20+i);//举例赋值
return p;
}
int main(int argv,char *argc[]){
int n=0,*q,i;
for(q=f(&n),i=0;i<n;printf("%5d",q[i++]));//调用f创建数组并在这里使用
free(q);//释放自定义函数中动态创建的数组
printf("\n");
return 0;
}

举例结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式