编程爱好者联盟 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: