栈区和代码区和全局数据区和堆区在内存中的分布是否有先后位置?这个分布关系牵扯到什么知识 重要吗
1个回答
展开全部
这些和位置的先后没有直接关系
在dos系统中,程序映射到内存中,那么代码区在前面,然后从程序获取栈区大小,然后划定栈区,
而在windows系统中,程序的堆栈是由系统分配与维护,代码区和栈区是分开的。所以呢在windows系统下,写应用程序时,这些都不用关心,可以认为程序是单独拥有有一个4G的空间(32系统,当然,真正应用时可能只能一次性申请到2G的空间)
所以在windows系统中,可以简单的理解为,代码区,和数据区,代码区由系统维护,而数据区除也程序自身申请的内存外,也全部由系统维护,(一般来说,代码区程序自身不能修改,而数据区可以)
这个了解一下就可以了,(如果你是写系统的内存管理程序,这个当然就变重要了)
在dos系统中,程序映射到内存中,那么代码区在前面,然后从程序获取栈区大小,然后划定栈区,
而在windows系统中,程序的堆栈是由系统分配与维护,代码区和栈区是分开的。所以呢在windows系统下,写应用程序时,这些都不用关心,可以认为程序是单独拥有有一个4G的空间(32系统,当然,真正应用时可能只能一次性申请到2G的空间)
所以在windows系统中,可以简单的理解为,代码区,和数据区,代码区由系统维护,而数据区除也程序自身申请的内存外,也全部由系统维护,(一般来说,代码区程序自身不能修改,而数据区可以)
这个了解一下就可以了,(如果你是写系统的内存管理程序,这个当然就变重要了)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询