int buf[200];
int *a = new int(1);
=> int *a = new( sizeof(int) ); *a = 1;
定位分配存储空间 new
int *a = new (buf) int(1); =》意义为 a指向以 buf 为起始地址的 一个 int 空间
也可以写为 int *a = new (buf+1) int(1); =》意义为 a指向以 buf+1 为起始地址的 一个 int 空间
当使用new 来定位存储空间为静态存储空间时,
则不能使用 delete a;因为delete 只能释放堆内存
int *a = new int[20]; ()换成[] 代表 int *a = new( sizeof(int)*20 );