2012-06-05 119 views
0

我需要一個數組來保存定義在函數fn1內的4個值,所以我創建了一個數組:int somearray[4];在main()中。雖然我知道數值可能會按數字分別輸入數組:somearray[1]=3;,我的數字是變量n1, n2, n3, n4添加多個值到數組

有沒有辦法做到這一點?

我已經考慮過在函數中創建一個數組的可能性,然後將各個值傳送到somearray[]

我明顯對C很陌生,想到返回數組也想到了。我很確定這是不正確的,但無論如何,這將有助於獲得一些確認。

在此先感謝。

要誠:

main(){ 
int sumarray[4]; 
int n1,n2,n3,n4; 

int fn1(){ 
n1=1; 
n2=23; 
n3=29; 
n4=14; 

sumarray[]={n1,n2,n3,n4} 

return 0; 
} 

return 0; 
} 

以及..至少這是我試圖做反正

+0

你能展示一些你的代碼嗎?這有點不清楚你的意圖是什麼。 – Makoto

回答

1

你可以這樣做:

char somearray[] = {n1, n2, n3, n4}; 

如果你寫一個輔助功能,在堆棧上分配數組(即把數組放在本地變量中),那麼你不能返回它。這是因爲它在堆棧中,將來基本上會被覆蓋。例如,您不會說:

int *f() { 
    unsigned a[] = {n1, n2, n3, n4}; 
} 

而是使用malloc,其分配在內存。因此,相比之下,你可以

int *f() { 
    unsigned *a = malloc(sizeof(int)*4); 
    ... 
    return a; 
} 
1

好吧錯誤試圖在函數中定義時,我可以這樣來定義FN1被運行後,外面的陣列的方向。多謝你們。