c++中开辟内存用new关键字 如:int *p=new int;
释放内存 用delete 如delete p;
new 的作用:1、开辟内存 2、初始化 3、开辟数组 4、释放数组
c++中开辟一维数组 如 int *cppp=new int[10] ;释放数组 delete []cppp;
c语言中开辟一维数组:int *cp=(int *)malloc(sizeof(int)*10);
c语言中动态开辟二维数组:
int **parr=(int **)malloc(sizeof(int *)*10)
for(int i=0;i<10;i++)
{
parr[i]=(int *)malloc(sizeof(int *)*10);
}
释放二维数组
for(int i=0;i<10;i++)
{
free(parr[i]);
}
free(parr);
c++中动态开辟二维数组:
int **cpparr=new int *[10];
for(int i=0;i<10;i++)
{
cpparr[i]=new int[10];
}
释放内存
for(int i=0;i<10;i++)
{
delete[]cpparr[i];
}
delete[]cpparr;
c++中常量要进行初始化要加const如const int *cp=new const int(10);
replace new:
重定位new的用法:
如int *q=new int;
char *p=new(q)char ('a');
new与malloc:
1、new开辟的内存块在自由存储区域
malloc开辟的内存块在堆上
2、new返回类型安全
malloc返回类型不安全
3、new不需要计算内存开辟的大小
malloc 需要计算内存开辟的大小
4、new抛出异常(bad_alloc)
malloc 返回NULL
5、new可以作初始化
malloc单纯开辟内存
作用域:全局作用域、局部作用域 、名字空间作用域、类作用
名字空间作用域:using声明,把后面声明的符号暴露在using声明当前的作用域
同名的名字空间作用域合并