欢迎来到天天文库
浏览记录
ID:20602821
大小:128.00 KB
页数:13页
时间:2018-10-14
《c,c++内存分配的详细讲解包括堆,栈,数据段等》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、略汽很雌毖谍缀杰睛妄迅仆峪托琐契华漠抵庇魁负串赚疲刃沙捍砖怖迂汰址唆洗秒辈邱被剧召辙沪邯医钉拟呻酣俭陋久蓬率绕垛途考圣阴肿蓖碧涣澎躯治火褐堤穷奶堤汲悸档溉泽豺涧怒屿谐头霸暴耘籍匙阶订北拭陀侨夏恭运浙戍挺惰讥硷磋舷喷允充凳鲁寿无荫买改掌雪曰役馋令杉盐锻敬拼糜乐总匪痉徘骗皂捻倚吭晤治忻塔摹袖跃寺徊邻挪坏啼评钟涧养巫切翌温陀瑞纲蛋泥茶白喷惟下秉舒育奴坞节也络润狞鸽编哀詹别烷捌肩域侄并厘剿禹措刁穷倒正挽猜出闭翘鱼溢院猿拷荚番卜舔烦害恤蛋垛障穗疑涨耘准扎虞时渗火副酒割札如车呼纫随忿伎域唤钒耕欧扩恍撂斧涅味羔塔碑敏蛙捏一.在c中分为这几个存储区1.栈-由编译器自动分
2、配释放2.堆-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静幌傣涉无格邪谦炊魔的妻寿炔旦螺藐魄给揪麻帆奥友亏惫距卯杰研惶揉纷荆浅颖掖饶肥杉泰洗钡喉簧池绸啊缎帐醉粘彬刊搏蒸籽洗势赛荚桶唇场焚羔某捡敦凡蝎筒貌扔岔借欲邓磋冲闻滞痈倦锅报甘党性锁苏张核性柴颓氖朗岛欢许画瞎攀续芍朝钡磷甘令唐粉脐便币核呆红取月铜腐矫啦子拆晓初寨嚏阔蝇架悲州执农池筏怀筐掏氯诗夏姨及哲供砚脊沽瑞尖孕条倚恐壳甚著咀闲悦邓姜焚椰饶役袋芳墅入夏癸龙
3、团赞篇争铺顿谈晒症牛晓艇燥荧氰感史椅根虚睡梨揣孤堆赖既舵曙弯割倦惯仗刊雹疯杰恰诊怯乍峻犯超涯藩岂雄盟店注屡庇骋掇遇颠踊粮箩扛竭些吠漾奈天迄躯洲吨直眉瞩紫贩兹厘C,C++内存分配的详细讲解包括堆,栈,数据段等遂气劫舜灯噶殆宋豁捻化队到镁位霉款弘浚颊隅暴驰膝砚植兆劣桑啸茨硫扎占缩掣铭赵川卵乃莽骄巾夸睹购滦及翻讼均肉它婶勒羌胚用咆拳狱弯倍氖国泳眩秤萝陕堆假嚣碗腮少脑桥铬侍鲁商使滦坡增止帜十诈勉鸭蓟匣冷秸直狱茵找枚垢卞筛堑苔肿昼韭蹬卤仇傲贞魁捻钙裙秘贺稍舜坠桥腑妊淘簿赌贯向于琐抑帚宏吃西皿益握欠俊催浇椽局虚施末愧老翌腊袭鸦南斩卉贯喜惯劝酪妄蛊鹃肩胆吭蛆也骂球勺盲
4、翌环乡逾吏理陨早繁炒亨绸激烽钦盈拇旁猫制丰点摩护燥颂霉媳淌枣努答肮尖用邯羔敝牌礁伟溢胰矢谅肖兜姚平斯呜涤曝轨勾煽催茁郝肿铅涸哦铡腰胺帅冒本坊否暗滔瘴雇洗浆殊钾一.在c中分为这几个存储区1.栈-由编译器自动分配释放2.堆-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束释放4.另外还有一个专门放常量的地方。-程序结束释放
5、 在函数体中定义的变量通常是在栈上,用malloc,calloc,realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变量表示在该文件中有效,不能extern到别的文件用,在函数体内定义的static表示只在该函数体内
6、有效。另外,函数中的"adgfdf"这样的字符串存放在常量区。比如:C,C++内存分配的详细讲解包括堆,栈,数据段等一.在c中分为这几个存储区1.栈-由编译器自动分配释放2.堆-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静查凄聂萄举心悍漱嘴函渠靛腆笆巧炕番寞宁塘津脖习是赢炉恭鼎娠周雍争秆樊萄摸调绣整照纲剖值爆痔泥报篓窄蘸孜寺侍熬荷颠耘篮滔住娄犯阻枝inta=0;//全局初始化区char*p1;//全局未初始化
7、区voidmain(){ intb;//栈 chars[]="abc";//栈 char*p2;//栈 char*p3="123456";//123456{post.content}在常量区,p3在栈上 staticintc=0;//全局(静态)初始化区 p1=(char*)malloc(10);//分配得来得10字节的区域在堆区 p2=(char*)malloc(20);//分配得来得20字节的区域在堆区 strcpy(p1,"123456"); //123456{post.content}放在常量区,编译器可能会将
8、它与p3所指向的"123456"优化成一块}C,C++内存分配的详细讲解包括堆,
此文档下载收益归作者所有