码迷,mamicode.com
首页 > 编程语言 > 详细

c语言内存四区模型

时间:2014-09-30 01:05:21      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   ar   sp   2014   c   log   代码   

bubuko.com,布布扣

c语言内存四区模型:
代码区,全局区(常量区),栈区,堆区

在全局区(常量区),两个字符串完全一样c++编译器只会定义一份

 

char * getBuf()

{

  char buf[20];  

  strcpy(buf, "abcde");

  return buf; }

abcdX?  有乱码! 确实把内存地址返回了,但不能用 被调函数调用完毕,在临时区分配的内存统统消失

 

char *buf= (char *)malloc(sizeof(char)*20); 手动malloc申请一份内存,由程序员手动管理

指针指向谁,就把谁的地址赋给指针

指针变量和他所指向的内存空间变量,是两个不同概念

 

总结:

 * 主调函数里分配的内存,不管在那个区,都可以在被调函数里使用

 * 如果被调函数在临时区(栈)分配内存,主调函数不能使用

c可以在临时区分配内存,用完后自动被系统回收 多个函数都是用同一个堆区,栈区

c语言内存四区模型

标签:blog   http   使用   ar   sp   2014   c   log   代码   

原文地址:http://www.cnblogs.com/angmu/p/4001031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!