我想弄清楚如何從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