C++ 动态数组

 在平常敲代码的时候  一般的题目会说明题目数据最大是多少   这时候 我可以把需要使用的数组按最大值开空间

但是在一些时候题目可能并不会告诉你最大值    它直接就是先输入一个n    然后输入n个数据   可不告诉你n的最大值

简单来说  就是  :普通的数组在编译的时候  我们就需要知道数组的大小   而动态数组的话就不需要

 

那我们来了解一下动态数组的使用:

 

每一个程序在执行的时候   都会占用一块可用的内存空间  用来存放动态分配的对象    此空间被称为“自由存储区”或者“堆”   

在C语言中   我们使用malloc和free来分配自由存储区的空间

在C++中   我们使用new   和   delete  来实现相同的功能

 

     int *a=new int[12];//创建空间为12的整数型数组
     string *str=new string[12];//创建string型数组
     int *b=new int[12]();//创建整数型数组   并初始化为0
     delete []a;//释放为a数组开辟的空间

从上面说的   并没有说明  为什么可以不在编译的时候   确定数组的大小    原因是我们在代码中应该这样使用

     int n;    cin>>n;
     int *a=new int[n];

也就是说   根据每一个测试案例的大小来开辟空间    这样就不会造成内存的浪费

 

另外在这提一下const型的动态数组    

const类型的动态数组    在你定义的时候   必须初始化   因为我们不能改变const类型的值

 

转载于:https://www.cnblogs.com/52why/p/7569397.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值