【摘要】:创建动态链表是在程序的运行过程中,一个一个地开辟结点空间和输入结点数据,并建立起结点的前后关系。创建动态链表的基本步骤如下:创建第一个结点,并保存该结点的内存地址。建立一个有3 名学生学号和成绩数据的单向链表,输入成绩为0 时,结束输入,并输出链表的所有结点信息。
创建动态链表是在程序的运行过程中,一个一个地开辟结点空间和输入结点数据,并建立起结点的前后关系。
创建动态链表的基本步骤如下:
(1)创建第一个结点,并保存该结点的内存地址。
(2)创建第二个结点,将第二个结点的地址保存在第一个结点的指针域中。
(3)以此类推,创建n 个结点。
【例10.12】建立一个有3 名学生学号和成绩数据的单向链表,输入成绩为0 时,结束输入,并输出链表的所有结点信息。
程序代码:
运行结果:
程序讲解:
在C语言中要动态开辟空间和回收空间需要使用malloc 函数和free 函数。(www.xing528.com)
函数原型及说明:
void*malloc(long NumBytes)
该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。
void free(void*FirstByte)
该函数是将之前用malloc 分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新得到自由。
使用这两个函数应注意:
(1)申请了内存空间后,必须检查是否分配成功。
(2)当不需要再使用申请的内存时,记得释放;释放后应该把指向这块内存的指针指向NULL,防止程序后面不小心使用了它。
(3)虽然malloc()函数的类型是(void*),任何类型的指针都可以转换成(void*),但是最好还是在前面进行强制类型转换,如p1=(struct student*)malloc(sizeof(struct student))。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。