でプログラムのメモリ割り当てを調べていましたC
。すべてのグローバル変数と静的変数がヒープに格納されていることを知っています。また、スタックにはすべての関数呼び出しが格納されます。ただ、ここでひとつ疑問があります。次の関数を呼び出しているとします。
int ret;
int num = 10;
int arr[3] = {1,2,3};
int *ptr = &arr[0];
ret = giveNumber(num, ptr);
ここで、関数呼び出しのパラメーターgiveNumer()
も同じスタックに格納されることを読みました。しかし、それらはどのような順序で保存されますか? スタックの一番上をポップした場合、どのパラメータが最初にポップされますnum
かptr
?