【发布时间】:2023-04-08 05:10:01
【问题描述】:
我试图弄清楚在 C 中如何返回一个数组。这是代码。我要做的是保存一个数组,然后使用函数返回来打印它。我在这里做错了什么?
#include <stdio.h>
#define DIM 50
char *func (char input[]);
int main(void)
{
char input[DIM];
printf("input? ");
fgets(input, DIM, stdin);
printf("output: %s", func(input));
return 0;
}
char *func(char input[])
{
int i;
char output[DIM];
for(i = 0; i < DIM; i++)
output[i] = input[i];
return &output;
}
【问题讨论】:
-
您正在返回函数本地数组的地址,该地址不存在于函数范围之外。
-
printf("输出: %s", func(input));也许用指针格式改变它: printf("output: %p", func(input));既然你得到了一个指针就可以做到。