c++内存重复使用

c++内存重复使用

#include <iostream>

using namespace std;

//静态区,栈,堆区,都可以这样重复使用,不过要注意使用的作用域
//delete/free释放只指针堆区

char str[512] = { 0 };					     //静态区

int main(int argc, char *argv[])
{
	int *p = new (str)int[10]{ 1,2,3,4,5,6,7,8,9,0 };   //使用静态区空间
	cout << "str地址" << (void *)&str << endl;
	for (int i = 0; i < 10; i++)
	{
		cout << "p[" << i << "]地址:" << p + i << "  p[" << i << "]值:" << p[i] << endl;
	}
	cout << "===========================" << endl;
	int *p1 = new (str)int[10]{ 1,2,3,4,5,6,7,8,9,0 };
	for (int i = 0; i < 10; i++)
	{
		cout << "p1[" << i << "]地址:" << p1 + i << "  p1[" << i << "]值:" << p1[i] << endl;
	}

	cin.get();
	return 0;
}

效果

静态区/栈区/堆区都可以重复使用,要注意使用的作用域
秋风 2018-03-13