プログラム:
int x;
int *y;
int **z;
z = (int **) malloc (sizeof(int *));
y = (int *) malloc (sizeof(int));
x = 1;
*z = &x;
*y = x;
.
.
.
質問: 次の違いは何ですか:
*z = &x;
*y = x;
私が理解していることから、* z は x のアドレスを指し、* y は x を指しますが、* y が x を指すためには x のアドレスは必要ありませんか? これら2つの変数で何が起こっているのか、私にはよくわかりません。
編集:変数がスタックまたはヒープにいつ割り当てられるかを知りたいですか?
- x、y、および z がスタックに割り当てられるのはなぜですか?
- *y、**y、*z、**z がヒープに割り当てられるのはなぜですか?
最後に、*z を変更すると **z が変更されますか?