我想弄清楚如何从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
而不是编辑您的帖子来说“已解决”接受一个满足您的需求的答案。 Upvote有帮助的答案。 – chux
对不起,我是这个网站的新手。 我认为每个答案都很好。 –
而不是道歉,审查[我应该做什么时,有人回答我的问题?](http://stackoverflow.com/help/someone-answers)请注意“请不要添加评论您的问题或答案说“谢谢”“ – chux