2012-06-05 63 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被运行后,外面的阵列的方向。多谢你们。