0

これは私が疑問に思っていたものです。さて、ここで、関数で変数を宣言するとします。この変数を別の関数へのポインターとして渡します。最初の関数(変数が宣言されている場所)が終了すると、この変数はどうなりますか?スタックに残りますか、それとも関数の終了時に削除されますか?

よろしくお願いします=D

4

3 に答える 3

4

変数を定義した関数が返すと、変数を静的に宣言しない限り、変数は破棄されます。C のストレージ クラスを確認してください。ポインタは次のとおりです: http://aelinik.free.fr/c/ch14.htm

于 2012-05-03T12:42:02.310 に答える
1

この変数をスタックで宣言すると、消えます:

void foo()
{
    int varInStack;
    foo2(&varInStack);

    // when foo returns, you loosed your variable.
}

あなたはそれを返すことができます:

int foo()
{
    int varInStack;
    foo2(&varInStack);

    return varInStack;
}
于 2012-05-03T12:43:59.860 に答える
1

最初の関数が終了すると、変数は破棄されるため、ポインターは無効になります。

于 2012-05-03T12:41:19.310 に答える