正在加载图片...
char name[20] char * description struct stamrecord*next 每个记录的结构确定之后,便要考虑如何将各个记录连接起来,组合成完整的记录集 在此不得不讨论动态内存分配的问题。 一般情况下,变量的存储空间的分配是在编译时便完成了,但是每个程序都拥有一块可 以在运行时再进行分配的内存空间,称为动态内存分配空间。在程序中,可以通过“new 操作符为指针或变量获得动态内存空间,并一直将该空间保持到程序员显式地将该空间收 例如 ar[s strcpy(ps, s) return ps 显式地收回动态分配的内存空间的方法是用“ delete”操作符施加在指向动态对象的指 针上。如上例中要释放动态分配内存 delete ps 注意:整个系统的动态分配内存空间是有限的,它将有可能被耗尽。因此对于已经无用 的动态分配内存空间,应该及时地进行释放。 简单介绍一下链表结构中添加、删除、插入、遍历、修改一个记录的过程。 3.4.6联合 在C++中,允许不同数据类型的数据使用共同的内存区域,这种数据构造类型称为联合 或称为联合体。联合在定义、说明和使用的形式上与结构很相似,但两者在本质上有着根本 的区别,使用时应该引起重视。 定义联合的一般语法结构如下: union variable data typel variable data type2 variable2 data typen variablen; }; 联合的定义也只确定了形式,并不分配具体的内存空间。联合的n个成员在内存中具有 相同的存储空间首地址。为了满足存放任意一个成员数据的目的,联合在内存是所占用的内{ char name[20]; float size[2]; unsigned int data; char *description; struct stamrecord *next; } 每个记录的结构确定之后,便要考虑如何将各个记录连接起来,组合成完整的记录集。 在此不得不讨论动态内存分配的问题。 一般情况下,变量的存储空间的分配是在编译时便完成了,但是每个程序都拥有一块可 以在运行时再进行分配的内存空间,称为动态内存分配空间。在程序中,可以通过“new” 操作符为指针或变量获得动态内存空间,并一直将该空间保持到程序员显式地将该空间收 回。例如: char *copystr(const char *s) { char *ps=new char[strlen(s)+1]; strcpy(ps,s); return ps; } 显式地收回动态分配的内存空间的方法是用“delete”操作符施加在指向动态对象的指 针上。如上例中要释放动态分配内存: delete ps; 注意:整个系统的动态分配内存空间是有限的,它将有可能被耗尽。因此对于已经无用 的动态分配内存空间,应该及时地进行释放。 简单介绍一下链表结构中添加、删除、插入、遍历、修改一个记录的过程。 3.4.6 联合 在 C++中,允许不同数据类型的数据使用共同的内存区域,这种数据构造类型称为联合, 或称为联合体。联合在定义、说明和使用的形式上与结构很相似,但两者在本质上有着根本 的区别,使用时应该引起重视。 定义联合的一般语法结构如下: union variable { data_type1 variable1; data_type2 variable2; . . . data_typen variablen; }; 联合的定义也只确定了形式,并不分配具体的内存空间。联合的 n 个成员在内存中具有 相同的存储空间首地址。为了满足存放任意一个成员数据的目的,联合在内存是所占用的内
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有