数量可变的
来源:互联网 发布:linux jobs 不显示 编辑:程序博客网 时间:2024/04/28 16:49
所有的变量使用到这一点,在本教程中有一个共同点:该变量必须先声明在编译的时候。这导致了两个问题:第一,很难有条件地声明一个变量,把它在一个if语句块之外(在这种情况下,它会超出范围时,块的结束)。第二,所有数组的大小必须决定在运行程序之前。例如,以下是不合法的:
1
2
3
4
5
cout <<
"How many variables do you want? "
;
int
nVars;
cin >> nVars;
int
anArray[nVars];
// wrong! The size of the array must be a constant
然而,在许多情况下,它会有用能的大小或调整阵列并正在运行的程序。例如,我们可能需要使用一个字符串,牵着别人的名字,但我们不知道多久,他们的名字是直到他们进入它。我们可能要在数的记录从磁盘读取,但我们事先不知道有多少记录。或者我们可以创建一个游戏,一个怪物追逐的球员数量可变的。
如果我们不得不宣布一切大小在编译的时候,我们所能做的就是尽力猜测的最大数量的变量,我们需要和希望的,足够的:
1
2
3
char
szName[25];
// let's hope their name is less than 25 chars!
Record asRecordArray[500];
// let's hope there are less than 500 records!
Monster asMonsterArray[20];
// 20 monsters maximum
这是几个原因不能解决。首先,它会导致浪费内存如果变量实际上并没有用。例如,如果我们分配25个字符每名称,但名称平均只有12个字符长,我们分配在两次,我们真正需要的!第二,它可以导致人为的限制和/或缓冲区溢出。当用户试图在600个记录从磁盘读取?因为我们只分配了500的空间,我们可以给用户一个错误,只看前500条记录,或(在最坏的情况下,我们根本没有处理这种情况),我们的记录,我们的程序缓冲区溢出崩溃。
幸运的是,这些问题是容易解决的问题,通过动态内存分配。动态内存分配允许我们将任何大小的记忆在我们需要的时候我们需要它。
单变量的动态分配
分配一个单变量的动态,我们使用标量(非数组)的新的算子形式:
0 0
- 数量可变的
- 数量可变的
- 球员数量可变的
- 可变数量参数的传递
- 可变数量的参数列表
- C# 可变数量参数的使用
- java中参数数量可变的方法
- 395_动态可变数量的指示器
- 5.5 参数数量可变的方法
- java参数数量可变的方法
- php 函数使用可变数量的参数
- Java :参数数量可变的方法
- C语言“参数数量可变的函数”
- 应用C# 可变数量的参数,使Tabel 随意显示
- params关键字给方法传递可变数量的参数
- 建议16:元素数量可变的情况下不应使用数组
- 279_自定义View画出可变数量的分割线
- Tip16 元素数量可变的情况下不应使用数组
- try{}catch(){}finally语句块
- 国内外从事CV相关的企业
- bzoj 1588 [HNOI2002]营业额统计 splay
- Java 信号量 Semaphore 介绍
- 7/23
- 数量可变的
- oracle中巧妙SQL语句
- 标量版阵列版
- 漂亮select框
- SYSCALL_DEFINE3宏定义的分析
- GitLab - 在自己的服务器上搭建类似于GitHub资源仓库
- 界面设计基本原则
- hdu 1258 Sum It Up(dfs)
- 由生产者/消费者问题看JAVA多线程