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

[]内存分配发生在哪一阶段

2012-10-18 
[求助]内存分配发生在哪一阶段?一般的书上是说:当程序编译时,给所有的变量分配内存空间。但是,对于局部变量

[求助]内存分配发生在哪一阶段?

一般的书上是说:当程序编译时,给所有的变量分配内存空间。但是,对于局部变量而言,都是在运行时才分配内存空间的。这是我理解上的矛盾吗?请大家不吝指教!

[解决办法]
编译时是规划性的“分配内存”,好像在图纸上画出房间的空间一样----在想像的空间里划分出来。
执行时是实现性的分配内存,好像将图纸上的房间“建造”出来
[解决办法]

探讨
编译时是规划性的“分配内存”,好像在图纸上画出房间的空间一样----在想像的空间里划分出来。
执行时是实现性的分配内存,好像将图纸上的房间“建造”出来

[解决办法]
人家问的是局部变量什么时候分配内存。。不是说系统为程序分配内存呢。。什么加载分配内存啊!!局部变量是在程序执行中,也就是楼上说的执行的时候分配的内存。。而不是处在编译阶段。。编译阶段是处理全局变量这种拥有静态存储周期的变量来的。。
[解决办法]
内存空间获取是在执行时才获得的 空间分配时分配的

即编译时为每个变量指定其需要占用多少空间 在执行时根据这个信息从内存中获取需要的空间
[解决办法]
对于程序的memory map来说,静态或者全局在编译阶段就会分配内存,未初始化的会在BSS段,初始化的在data段.函数里面的局部变量都是在运行时从stack里面分配的.

热点排行