私はUNIX試験の準備をしており、C変数のメモリの場所について質問があります。 のは、我々はこの関数の引数のメモリ位置
char sth;
int some_function(int arg) {
int some_int;
// some code here
}
ようなコードがあるとしましょうので、私は、スタック上some_int
、sth
はヒープ上に配置されていると仮定しますが、arg
はどこにありますか? 誰かがC変数の管理方法を説明できますか?
ありがとうございました
スタックにすべて入っていませんか? –
Q:それらはすべてスタックに入っていませんか? A:いいえ。「int some_int」は間違いなくスタックにあります。 "int arg"は間違いなくスタックを介して渡されます。それがポインタの場合、ポインタはスタックに渡されますが、実際のデータが指し示されている場所はどこでもかまいません。そして、 "sth"は静的なデータのように見えるので、スタックにはありません。 – paulsm4