0

関数内で定義された4つの値を保持する配列が必要だったfn1ので、配列を作成しました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;
}

まあ..少なくともそれは私がとにかくやろうとしていたことです

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 に答える