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

如题所述

提供2个办法供参考:

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

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

追问

第一种方法会了 第二种你举个栗子呢 谢谢

追答#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;
}

举例结果:

温馨提示:答案为网友推荐,仅供参考
相似回答