C/C++内存四区


C/C++内存四区


***********************************************************************************************

一.代码区

  • 代码区中主要存放程序中的二进制代码,属性只读

二.全局区

  • 存放全局变量,静态变量,常量(字符串常量,const修饰的全局变量(const int number = 12;),函数名

三.栈区

  • 存放局部变量,函数参数,内存分配与释放都是由编译器自身完成
  • 注意:不要返回局部变量的地址,因为局部变量在函数调用结束就会释放内存空间

四.堆区

  • 堆区是不会在自动分配时做初始化的,包括清零,所以必须自己清零

代码示例(C语言)

/*定义图片结构体*/
//申请一个结构体变量内存
struct Camera_Pic  *pic =(struct Camera_Pic *) malloc(sizeof(struct Camera_Pic));
//初始化结构体
memset(pic, 0, sizeof(struct Camera_Pic));
//释放内存空间
free(pic);
//释放的是指针指向的内存空间,为了不让指针成为野指针,让其成为空指针
struct Camera_Pic  *pic = NULL;

  • C++中通过 new关键字申请内存空间(整型,数组
int main(void)
{
//**申请一个整形数据类型空间,并初始化该变量为10**
	int *p = new int(10);
//释放内存空间	
	delete p; 
//在堆区开辟一个数组(10个元素)
 	int *arr = new int[10];
//初始化该数组
	for(int i=0;i < 10;i++)
	{
		arr[i]=0;
 	}
//释放堆区数组
	delete[] arr; 	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值