如何在C中返回数组?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int func(int);
printf("%d",func(1));
}
int func(int n)
{
int i,arr[5]; //or int *arr=(int*)malloc(5);
for (i=0; i<5; i++) {
arr[i]=n++;
}
return arr;
}
我想获取结果“ 11111”,但是此代码的结果为“ 1606416336”。
我该怎么做才能解决这个问题?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *func1(int);
int func2(int);
int *p = func1(1);
int i;
for(i=0; i < 5; ++i){
printf("%d", p[i]);
}
printf("\n");
free(p);
printf("%d",func2(1));
return 0;
}
int *func1(int n){
int i;
int *arr=(int*)malloc(5*sizeof(int));
for (i=0; i<5; i++) {
arr[i]=n;
}
return arr;
}
int func2(int n){
int i, v = 0;
for (i=0; i<5; i++){
v = v * 10 + n;
}
return v;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句