HOME»基本情報技術者試験掲示板»プロセスが実行される際のスタックに関して
投稿する
プロセスが実行される際のスタックに関して [2542]
ITビギナーさん(No.1)
何方か教えてください。
あるプログラム、
Proc A( )
int X1
X1=100
call B(X1) /*関数Bの呼び出し*/
が実行された際のメモリスタックは、
<100 /*X1に代入された値*/
<X1のアドレス
<戻りアドレス
の順になると参考書に記載されていましたが、関数Bに渡すX1は値渡しなので、<X1のアドレス後に'<引数X1'を入れた方が良いと思ったのですが、間違いでしょうか。
あるプログラム、
Proc A( )
int X1
X1=100
call B(X1) /*関数Bの呼び出し*/
が実行された際のメモリスタックは、
<100 /*X1に代入された値*/
<X1のアドレス
<戻りアドレス
の順になると参考書に記載されていましたが、関数Bに渡すX1は値渡しなので、<X1のアドレス後に'<引数X1'を入れた方が良いと思ったのですが、間違いでしょうか。
2020.11.06 07:46
メタルさん(No.2)
★FE ブロンズマイスター
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c006.html
うーん、スタックにProcA のローカル変数X1がはいり、次に引数で渡されたX1がはいり、ProcAに戻るアドレスが入り、空間を挟み、Bのローカル変数が入るのだと思います。
リンクもお読みください。
うーん、スタックにProcA のローカル変数X1がはいり、次に引数で渡されたX1がはいり、ProcAに戻るアドレスが入り、空間を挟み、Bのローカル変数が入るのだと思います。
リンクもお読みください。
2020.11.08 01:55
ITビギナーさん(No.3)
メタルさん、リンクまで付けていただきありがとうございます。解りやすいです。
2020.11.08 03:53