これは私が疑問に思っていたものです。 さて、ここでは、 私は関数内の変数を宣言すると、私はこの変数を別の関数へのポインタとして渡します。 最初の関数(変数が宣言されている場所)が終了したとき、この変数はどうなりますか? スタックに残っているのですか、機能が終了すると削除されますか?予め関数からポインタを送信する
おかげ= D
これは私が疑問に思っていたものです。 さて、ここでは、 私は関数内の変数を宣言すると、私はこの変数を別の関数へのポインタとして渡します。 最初の関数(変数が宣言されている場所)が終了したとき、この変数はどうなりますか? スタックに残っているのですか、機能が終了すると削除されますか?予め関数からポインタを送信する
おかげ= D
あなたがそれを静的と宣言していない限り、変数を定義する関数が戻り値を返したときには、が破棄されます。ここではC.にストレージクラスを確認することはポインタです:http://aelinik.free.fr/c/ch14.htm
リンクをありがとう、今すぐお読みください! – Davey
あなたがスタック上にこの変数を宣言した場合、それはdisapearます:
void foo()
{
int varInStack;
foo2(&varInStack);
// when foo returns, you loosed your variable.
}
あなたはそれを返すことがあります。
int foo()
{
int varInStack;
foo2(&varInStack);
return varInStack;
}
それはストレージに依存します変数の指定子。 – Mahesh