编程爱好者联盟 2016-09-30
C++中除了兼容C的管理方式外,还额外提供了两个运算符(不是函数)来管理动态内存:
Note:
使用new运算符实现定位分配
#include<iostream>
using namespace std;
int main(void){
short buf[2]={0}; //在stack区申请了4byte大小的空间
//pi指向堆区,pi本身在栈区
int* pi=new int(66);
cout<<"*pi="<<*pi<<endl; //66
delete pi;
pi=NULL;
//使用new运算符实现定位分配的效果
pi=new(buf)int(0x12345678);
//delee\te pi;segmentatiob c
} 定义二维数组的首地址:
int (*ai)[3]=new int[2][3];
for(int i=0;i<2;i++){
for(int j=0;i<3;j++)
cout<<"ai["<<i<<"]["<<j<<"]"<<ai[i][j]<<endl;
}
delete[] ai; // 连续的调用析构 Note: