C++动态开辟

                                                              C++中的动态内存开辟 和名字空间作用域

一.C++中的动态内存开辟

C语言中我们用malloc来动态开辟空间:

     int *p = (int*)malloc(sizeof(int));

释放用free:

  free(p);

在C++中动态开辟使用new:

int *p = new int;

释放空间使用delete:

delete p;

 

我们也可以对其进行初始化操作:

int *q =new int(10);    // 给里面放了值10;

delete q;

 

C++动态开辟数组:

int *parr = new int[10];

delete []parr;

注意的是C++动态开辟数组没办法进行初始化,但是可以零初始化

int *parr = new int[10]();

把动态开辟的数组里的值全置为0;

 

C++动态开辟二维数组:

二维数组相当于多个一维数组:

int **p = new int*[10];

for(int i = 0;i < 10;i++)

{

         p[i] = new int[10];

}

释放空间:

for(int i = 0;i < 10;i++)

{

        delete [] p[i];

}

        delete [] p;

C语言动态内存开辟失败会返回NULL,C++ 开辟失败会抛出异常

常量内存块开辟要初始化

 

重定位new   开辟在自主存储区,且不需要delete释放控件:

int a = 10;

char *p4 = new(&a) char('a');

 

 


二.名字空间作用域

::全局作用域访问符

如:

      CY1202::Sum;    调用CY1202下的Sum

同名名字空间作用域会进行合并

using声明:

using CY1202::Sum;    把Sum符号暴露在声明点的作用域下;

using namespace  CY1202     把CY1202所有的都暴露在声明点的作用域下


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值