一个c/c++程序中的内存分配

全局/静态数据区:存储全局变量,和静态变量static声明的变量


常量存储区:存储常量,如char *s="abcde"; 或者 const int i =10;代码区:这个不说了。代码放的地儿


栈:临时变量,参数等,有大小限制,vc6/7: 1M 


堆: 用户自己维护的空间,内存使用需要自己申请,自己释放。大小基本不限(4G) 


example: 
#include <iostream> 
using namespace std; 


int global = 100;  //全局/静态区 
const int N = 10;  //常量区 


int main() 
{ 
 static int a = 0; //全局/静态区 


char arr[100]="test";//arr分配在栈上,"test"分配到常量区,还有一个副本在栈上 




 char *s = "abcde";//s分配在栈上,"abcde"分配在常量区 
 char*str = NULL;  //str分配在栈上 
  
 str = new char[10];//str所指向的空间分配在堆上 
 delete []str; 


 return 0; 
} 



本文来自: 中国自学编程网(www.zxbc.cn) 详细出处参考:http://www.zxbc.cn/html/20071215/30428.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值