向数组添加多个值

时间:2012-06-05 23:36:23

标签: c arrays

我需要一个数组来保存函数fn1中定义的4个值,所以我创建了一个数组:int somearray[4];在main()中。虽然我理解值可能会按数字somearray[1]=3;分别输入数组,但我的数字是变量n1, n2, n3, n4

有没有办法实现这个目标?

我考虑过在函数中创建数组的可能性,然后将单个值转换为somearray[]

我显然对C很新,并且想到了返回阵列的想法也浮现在脑海中。我很确定这不对,但无论如何都会有所帮助。

提前致谢。

To Makoto:

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;
}
好吧..至少那是我试图做的事情

2 个答案:

答案 0 :(得分: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 :(得分:1)

好的错误是在fn1运行后我可以在外部定义数组时尝试在函数中定义数组。谢谢你们。