首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言内存储器分配

2012-09-24 
c语言内存分配最近在看c语言内存分配,看到有些资料上说内存分三个区,分别是全局区(包括全局变量和static变

c语言内存分配
最近在看c语言内存分配,看到有些资料上说内存分三个区,分别是全局区(包括全局变量和static变量等),栈区(局部变量和函数参数等),堆区(自己malloc的空间)。但又有的资料上写除了以上三种外还有常量区和代码区。这我就纠结了,所以请大家帮我解答一下。多谢多谢。

[解决办法]
全局区/栈区/堆区的说法比较合理,常量区/代码区类似于BSS/DATA/CODE段的意思。
[解决办法]
在linux和windows还略有不同;在linux下内存分为:
内核区用户区,用户区分为:环境变量区域、栈、堆、数据段、只读数据段、BSS段、代码段;
其中.bss段是初始化为0的全局变量或静态变量,初始化不为0的全局变量或者静态变量放在数据段;
常量放在只读数据段;
在windows下,不分数据段和只读数据段,只有数据段;

[解决办法]
楼上正解
吐血推荐楼主看看《深入理解计算机系统》
[解决办法]
看看PE文件的结构和操作系统执行文件的机制也许对你的解理有用处
[解决办法]
MSDN98中的例子walker又名pwalk。完整列出指定进程的内存使用情况,显示进程地址空间内容,装载哪些DLL,代码、数据、堆栈段分配在何处,可以用来检测内存泄漏,监测内存使用。 
http://download.csdn.net/detail/zhao4zhong1/3667896
[解决办法]
《Windows PE权威指南》
[解决办法]
http://blog.csdn.net/agoago_2009/article/details/6523733

热点排行