【发布时间】:2013-10-13 11:02:42
【问题描述】:
我正在阅读一本关于操作系统的书,上面写着“我们必须进行设置,以便分配给全局变量的那部分空间在程序的生命周期内分配紧张,但那部分分配给本地只有当线程在变量范围内时,变量才会保持分配状态"
我不明白的是,当程序加载到内存中时,为它保留的地址不是静态的吗?这不像当一个变量超出范围时,操作系统看到变量所在的地址空间(现在是?)现在可以被另一个程序使用,或者是吗?
书上说全局变量存储在内存中,局部变量存储在运行时堆栈中。首先,运行时堆栈在内存中,所以我看不出区别。由于在运行前无法确定要推送的项目数,操作系统如何知道要为运行时堆栈分配多少空间?
【问题讨论】:
标签: operating-system stack memory-address