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