静态内存;堆内存;函数局部栈内存 demo程序(摘自C++程序员求职关键路径)
2011-08-09 15:39
447 查看
#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和指针中关于变量的讲解。弄清楚一个变量的作用域;链接属性;存储类型;是非常重要的
程序的编译生成目标文件; 然后链接成可执行文件;然后程序进入宿主机执行。
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和指针中关于变量的讲解。弄清楚一个变量的作用域;链接属性;存储类型;是非常重要的
程序的编译生成目标文件; 然后链接成可执行文件;然后程序进入宿主机执行。
相关文章推荐
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------局部变量,全局变量,静态变量,函数代码,new出来的变量
- 每日一个C++小程序(十二)--具有静态数据、函数成员的Point类,多文件组织
- 程序员求职之道(《程序员面试笔试宝典》)之程序设计基础(内存分配形式)?
- C/C++中程序在使用堆内存时的内存复用问题
- Windows环境C/C++ 获取当前执行程序路径的两个函数
- C++程序 证明类的数据成员的内存分配是独立的 ,成员函数是共享的
- C/C++中程序在使用堆内存时的内存复用问题
- C++程序运行时内存布局之----------无继承情况下的虚函数
- C++程序运行时内存布局之----------局部变量,全局变量,静态变量,函数代码,new出来的变量
- C++ 学习笔记(6)函数、局部静态对象、重载函数、内联函数、constexpr函数、调试帮助、函数匹配、函数指针
- C++程序运行时内存布局之----------局部变量,全局变量,静态变量,函数代码,new出来的变量
- C++程序运行时内存布局之----------无继承情况下的虚函数
- C++----局部静态对象和函数
- c/C++编译的程序占用的内存以及More Effective C++ 条款1:指针与引用的区别
- C++程序运行时内存布局之----------this到底是什么?
- c/c++程序在内存中的分布