静态内存;堆内存;函数局部栈内存 demo程序(摘自C++程序员求职关键路径)
来源:互联网 发布:java 初始化错误异常 编辑:程序博客网 时间:2024/05/16 00:39
#include "iostream"
using namespace std;
char* get_memory1()
{
char p[]="hello";//p这个数组变量的右值在函数局部栈上
return p;//returning address of local variable or temporary
}
char* get_memory2()
{
char *p="hello";//p这个指针指向的是一个静态存储区
return p;//正常
}
char* get_memory3()
{
char *p=(char*)malloc(sizeof("hello"));//p这个指针指向的是一个堆内存
strcpy(p,"hello");
return p;//正常
}
void main()
{
char *p1=get_memory1();
cout<<p1<<endl;
char *p2=get_memory2();
cout<<p2<<endl;
char *p3=get_memory3();
cout<<p3<<endl;
if(p2==p3)
cout<<"两个相同的字符串常量在静态存储器只占一份位置空间"<<endl;
else
cout<<"两个相同的字符串常量在静态存储器占两份不同的位置空间"<<endl;
}
另外:最近简单看了下C和指针中关于变量的讲解。弄清楚一个变量的作用域;链接属性;存储类型;是非常重要的
程序的编译生成目标文件; 然后链接成可执行文件;然后程序进入宿主机执行。
- 静态内存;堆内存;函数局部栈内存 demo程序(摘自C++程序员求职关键路径)
- C语言中,局部变量、全局变量、静态变量、堆、栈的内存地址
- 内存分配--静态内存、栈和堆
- 黑马程序员--栈内存与堆内存
- 【黑马程序员】栈内存与堆内存
- 静态内存,栈内存和堆内存的区别
- C语言程序内存中:静态存储区、堆、栈的区别
- C中堆内存和栈内存
- 【C++】堆内存和栈内存详解
- 堆(内存)栈(内存)
- 栈内存 堆内存
- 栈内存、堆内存
- 栈内存 堆内存
- 堆内存 栈内存
- 栈内存、堆内存
- C/C++内存分配原理(堆、栈、静态区)
- C语言内存(堆内存\栈内存)操作函数大全
- c 局部申请内存
- IHttpModule接口事件执行 获取Session .
- const的常见用法
- 武侠世界,基于Ogre的地形分析
- IE8不能居中显示的5个解决办法
- C#转义字符
- 静态内存;堆内存;函数局部栈内存 demo程序(摘自C++程序员求职关键路径)
- 线程 --生产和消费问题
- cocos2d制作的塔防游戏(一)(共五篇)
- SIFT特征匹配中的相关问题
- 给电脑的情人节礼物
- 让iframe简单有效自适应高度
- hdu2066
- 用策略屏蔽135 139 445 3389端口+网络端口安全防护技 .
- flex与java的一种通信方式