没有合适的资源?快使用搜索试试~ 我知道了~
vc++6.0中动态数组实现(例如string类对象数组等)[文].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 48 浏览量
2021-10-12
01:17:14
上传
评论
收藏 13KB PDF 举报
温馨提示
试读
4页
vc++6.0中动态数组实现(例如string类对象数组等)[文].pdf
资源推荐
资源详情
资源评论
VC动态数组实现
数组类型的变量有三个重要的限制 : 数组长度固定不变 , 在编译时必须知道其长
度, 数组只在定义它的块语句内存在 .
实际的程序往往不能忍受这样的限制 ------- 它们需要在运行时 动态地分配数
组. 虽然数组长度是固定的 , 但动态分配的数组不必在编译时知道其长度 , 可以
( 通常也是 ) 在运行时才确定数组长度 . 与数组变量不同 , 动态分配的数组将一直
存在 , 知道程序显式释放它为止 .
每一个程序在执行时都占用一款可用的内存空间 , 用于存放动态分配的对象 , 此
内存空间称为程序的自由存储区 (free store) 或堆(heap).C 语言程序使用一对
标准库函数 malloc 和 free 在自由存储区中分配存储空间 , 而 C++语言则使用 new
和 delete 表达式实现相同的功能。
1. 动态数组的定义
数组变量通过指定类型、 数组名和维数来定义 . 而动态分配数组时 , 只需指定类型
和数组长度 , 不必为数组对象命名 ,new 表达式返回指向新分配数组的第一个元
素的指针 :
int *pia=new int[10] ; //array of 10 uninitialized ints
此 new表达式分配了一个含有 10 个 int 型元素的数组 , 并返回指向该数组第一个
元素的指针 , 此返回值初始化了之怎 pia.
new表达式需要指定指针类型以及在方括号中给出的数组维数 , 该维数可以是任
意的复杂表达式 . 创建数组后 ,new 将返回指向数组第一个元素的指针 . 在自由存
储区中创建的数组对象是没有名字的 , 程序员只能通过其地址间接地访问堆中的
对象 .
2. 初始化动态分配的数组
动态分配数组时 , 如果数组元素具有类类型 , 将使用该类的默认构造函数实现初
始化 ; 如果数组元素是内置类型 , 则无初始化 :
string *psa=new string[10]; //array of 10 empty strings
int *pia=new int[10]; //array of 10 ninitialized ints
这两个 new表达式都分配了含有 10 个对象的数组 . 其中第一个数组是 string 类
型, 分配了保存对象的内存空间后 , 将调用 string 类型的默认构造函数依次初始
化数组中的每个元素 ( 实际上 string 对象都是空串, 结尾无‘