【发布时间】:2015-03-07 07:36:40
【问题描述】:
我正试图弄清楚如何从 main() 中的函数返回一个数组。
我正在使用 C 语言。
这是我的代码。
#include <stdio.h>
int *initArray(int n){
int i;
int *array[n];
for(i = 0; i < n; i++){
array[i] = i*2;
}
return array;
}
main(){
int i, n = 5;
int *array[n];
array[n] = initArray(n);
printf("Here is the array: ");
for(i = 0; i < n; i++){
printf("%d ", array[i]);
}
printf("\n\n");
}
这是控制台给我的错误:
2.c: In function ‘initArray’:
2.c:8:13: warning: assignment makes pointer from integer without a cast [enabled by default]
array[i] = i*2;
^
2.c:11:3: warning: return from incompatible pointer type [enabled by default]
return array;
^
2.c:11:3: warning: function returns address of local variable [-Wreturn-local-addr]
2.c: In function ‘main’:
2.c:23:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=]
printf("%d ", array[i]);
^
这不可能! 我讨厌成为菜鸟:(
如果您能提供帮助并提供解释,我将不胜感激! :D
【问题讨论】:
-
而不是编辑您的帖子说“已解决”接受完全满足您需求的答案。为有帮助的答案点赞。
-
对不起,我是这个网站的新手。我认为每个答案都很好。
-
与其道歉,不如回顾What should I do when someone answers my question? 请注意“请不要对您的问题或回答说“谢谢”添加评论”
标签: c arrays function parameters return