标签:blog http 使用 ar sp 2014 c log 代码
c语言内存四区模型:
代码区,全局区(常量区),栈区,堆区
在全局区(常量区),两个字符串完全一样c++编译器只会定义一份
char * getBuf()
{
char buf[20];
strcpy(buf, "abcde");
return buf; }
abcdX? 有乱码! 确实把内存地址返回了,但不能用 被调函数调用完毕,在临时区分配的内存统统消失
char *buf= (char *)malloc(sizeof(char)*20); 手动malloc申请一份内存,由程序员手动管理
指针指向谁,就把谁的地址赋给指针
指针变量和他所指向的内存空间变量,是两个不同概念
总结:
* 主调函数里分配的内存,不管在那个区,都可以在被调函数里使用
* 如果被调函数在临时区(栈)分配内存,主调函数不能使用
c可以在临时区分配内存,用完后自动被系统回收 多个函数都是用同一个堆区,栈区
标签:blog http 使用 ar sp 2014 c log 代码
原文地址:http://www.cnblogs.com/angmu/p/4001031.html