C++动态内存释放与结构体应用

需积分: 9 8 下载量 191 浏览量 更新于2024-08-19 收藏 3.65MB PPT 举报
"动态内存释放函数-C++东南大学何洁月课件(总)" 在C++编程中,动态内存管理是一项重要的技能,特别是涉及到内存分配和释放。动态内存分配允许程序员在运行时根据需要分配和释放内存,这在处理不确定大小的数据或者避免浪费静态内存时非常有用。本课件主要讲解了C++中的动态内存释放函数`free()`及其相关知识点。 动态内存释放函数`free()`用于释放之前通过`malloc()`, `calloc()`, 或 `realloc()`等函数分配的内存。`free()`函数接收一个参数`memblock`,该参数是一个指向要释放内存块的指针。当这个内存不再需要时,调用`free()`可以防止内存泄漏,即已分配但未使用的内存持续占用系统资源。 ```cpp #include <stdlib.h> // 包含free()函数的头文件 void free( void *memblock ); ``` 在示例代码中,可以看到不同类型的练习题目,如9-1.c到9-5.c,这些都是关于C++基本语法和控制结构的练习,包括分支结构和循环结构。例如,《最新C》这本书中的P37上图和P38下图可能涉及条件判断(if语句)和循环(for, while等)的概念,这些都是程序设计的基础。 9-4.c和P39图可能讨论的是更高级的主题,比如数据结构,如结构体(struct)。在C++中,结构体可以用来组合不同类型的数据,例如定义一个`aircraft`结构体,包含翼幅、乘客数量以及一个无名联合,这可能是为了表示不同类型的飞机。结构体的成员可以通过结构体变量来访问和赋值。 此外,课程还提到了函数的使用,如交换函数`Swap`,它强调了值传递和引用传递的区别。值传递会复制变量的值,而引用传递允许函数直接修改原变量。在9-5.c中,可能涉及操作符优先级和关联性,这是理解和编写正确表达式的关键。 程序设计方法学方面,课件提到了模块化编程,这是将大型程序分解为多个独立的子模块,每个子模块负责特定的功能。这种“主模块+子模块”的结构使得程序更易于理解和维护。面向对象编程(OOP)的理念也被提及,它强调用对象来抽象现实世界中的实体,并通过继承和派生来建立类的层次结构,实现代码复用和封装。 类是C++中实现OOP的核心,它封装了数据和操作这些数据的函数。成员函数可以在类的声明中定义(内联函数),也可以在类外部定义。当对象被销毁时,可以定义析构函数来自动执行清理工作。析构函数在对象生命周期结束时自动调用,这对于清理动态分配的内存尤其有用。 总结起来,这个课件涵盖了动态内存管理、基本的程序控制结构、数据结构、函数、类和对象等C++核心概念,旨在帮助学生建立扎实的编程基础和理解面向对象的编程思想。