码迷,mamicode.com
首页 > 编程语言 > 详细

C++ new限定区域分配内存

时间:2015-05-11 09:08:51      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:c++   限定   内存   

C++中从指定区域分配内存:

#include<iostream>
using namespace std;

const int buf(1024);
char buffer[buf]={0}; //开辟静态区域
 
//p1,p3作为指针变量在栈区,存储的地址指向堆区
//手动释放内存

//p2,p4作为指针变量在栈区,存储的地址指向静态区
//自动释放内存,用于分配用完了就不会再用的数据
//避免内存泄漏,自动释放内存。牺牲了内存访问独立性,
//从程序输出结果可以看出p2 和p4的地址相同的
void main()
{
	int len=5;
	int *p1,*p2,*p3,*p4;

	p1=new int[len];
	p2= new (buffer)int[len];
	
	p3=new int[len];
	p4= new (buffer)int[len];//用指定的区域去分配,从buffer首地址开始分配
	cout<<"buffer:"<<&buffer<<endl;
	for(int i=0;i<len;i++)
	{
		*(p1+i)=i+1;
		*(p2+i)=i+2;
		cout<<"p1:"<<(p1+i)<<"  "<<*(p1+i)<<"  p2:"<<(p2+i)<<" "<<*(p2+i)<<endl;

	}
	cout<<endl<<endl;
	for(int i=0;i<len;i++)
	{
		*(p3+i)=i+1;
		*(p4+i)=i+2;
		cout<<"p3:"<<(p3+i)<<"  "<<*(p3+i)<< "  p4:"<<(p4+i)<<" "<<*(p4+i)<<endl;
	}

	delete p1;
	delete p3;
	cin.get();
}
技术分享

C++ new限定区域分配内存

标签:c++   限定   内存   

原文地址:http://blog.csdn.net/huangshanchun/article/details/45623609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!