【发布时间】:2015-05-05 00:12:51
【问题描述】:
如何在 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”。
我该怎么做才能解决这个问题?
【问题讨论】:
-
不能在C中返回本地数组,需要用
malloc()动态分配。 -
你不能永远在 C 中返回一个数组。这是一个令人讨厌的限制。但是,您可以返回一个包含数组的结构,或者让调用者创建一个数组并将指针作为参数传递给它。
-
int func(int n) { int i, v = 0; for (i=0; i<5; i++) { v = v * 10 + n; } return v; }
标签: c