0

我需要一个数组来保存在函数中定义的 4 个值fn1,所以我创建了一个数组int somearray[4]:在 main() 中。虽然我知道值可以通过 number: 单独输入到数组somearray[1]=3;中,但我的数字在 variables 中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;
}

好吧..至少那是我试图做的

4

2 回答 2

1

好的,错误是尝试在函数内定义数组,而我可以在运行 fn1 后定义数组。多谢你们。

于 2012-06-06T01:35:08.483 回答
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;
}
于 2012-06-05T23:40:27.097 回答