1. 使用new 运算符初始化
? ? ? ? 初始化方式
int main()
{
int *a = new int(6);
int *arr = new int[4] {1,2,3,4}; //C++11
int *b = new int{6}; //C++11
return 0;
}
2. 定位new运算符
? ? ? ?普通?new 运算符负责在堆中找到合适的内存块,定位?new运算符是在指定的位置找到合适的内存。通常用于设置内存管理规程,处理需要通过特定地址进行访问的硬件或者在特定位置创建对象。
#include <iostream>
using namespace std;
char buffer[100];
int main(){
int *a = new int (5);
int *b = new (buffer) int(6); //定位在buffer所在内存块
cout<<&a<<endl;
cout<<b<<" value: "<< *b <<endl;
cout<<&buffer<<endl;
int *c = new (buffer) int(7); //还在buffer内存块,会覆盖之前的值
cout<<c<<" value: "<< *c <<endl;
return 0;
}
待续~
|