1. 动态内存分配
1)与 静态内存分配 相对,指在程序运行中,根据程序的实际需要来分配一块大小合适的连续的内存单元。
2)动态分配的内存需要有一个指针变量记录内存的起始地址。
3)常用的动态内存分配函数有 malloc(), calloc(), realloc() 等。
2. malloc() 函数:
1)函数原型: void *malloc ( unsigned int size);
2)参数size,指申请分配的内存大小,一般写成 分配数量 x sizeof(内存单元类型)
3)返回值是NULL(空指针)时,表示分配内存失败;否则,返回值是一个指向空类型(void)的指针,说明返回的指针所指向的内存块可能是任何类型。
int n, *p;
scanf("%d", &n);
p = (int *) malloc( n * sizeof(int) ); // 分配n个连续的整型单元,首地址赋给p
if ( p == NULL ) // 分配内存失败,给出错误信息后退出
{
printf("分配内存失败!");
exit(0);
}
... //可对p所指向的单元进行其他处理
3. 函数 calloc()
1)函数原型: void *calloc ( unsigned int num, unsigned int size );
2)参数:num 表示向系统申请的内存空间的数量;size 表示申请的每个内存空间的字节数。
3)返回值:分配内存成功,返回一个 void 类型的连续存储空间的首地址;分配失败,返回空指针NULL。
4. 函数 realloc()
1)函数原型: void *realloc ( void *p, unsigned int size );
2)作用:将指针 p 所指向的存储空间的大小改为 size 个字节。用于改变原来分配的存储空间的大小。
3)适用于先前通过动态内存分配的存储空间需要进行扩充或缩小的情况,好处是原存储空间中的数据能保持不变。
5. 释放动态内存函数 free()
1)函数原型:void free( void *block );
2)参数 block 一般为指向分配的动态内存首地址的指针变量。
3)free() 函数一般和 malloc() 等函数成对使用。
分享到:
相关推荐
本压缩包包含的“C语言学习笔记”是一份详尽的C语言学习资料,旨在帮助读者深入理解和掌握C语言的基本概念、语法结构以及实际应用技巧。 一、C语言基础 C语言的基础包括变量、数据类型、运算符、流程控制等。变量...
C语言的核心概念,如指针、动态内存分配、位操作和控制流等,一直是学习其他编程语言时的重要基础。C语言简洁的语法结构也使得它易于阅读和维护,而它的模块化设计思想更是对现代软件工程产生了深远的影响。 对于...
C语言提供了灵活的内存操作能力,包括动态内存分配与释放等。这些功能虽然强大,但也带来了潜在的风险,例如内存泄漏、指针越界等问题,这些都需要开发者通过严谨的编程习惯和调试技巧来避免。 此外,C语言的库函数...
通过指针,我们可以直接操作内存,实现动态内存分配、数据结构如链表的构建,以及高效地传递大对象等。 此外,笔记还涉及了预处理器、输入/输出流(stdio库)和文件操作。预处理器指令如#include用于包含头文件,宏...
在深入探讨压缩包内容之前,首先要明确一点,文件压缩包“算法学习_C语言_链表_数据结构应用笔记_1741858703.zip”是关于计算机科学领域中编程语言C语言的学习资源,特别是聚焦于链表和数据结构在C语言中的应用。...
C语言提供了malloc和free函数进行动态内存分配和释放,避免了固定大小数组的限制,但需注意内存泄漏问题。 九、输入/输出 标准输入输出库stdio.h提供了scanf和printf函数进行输入输出操作,还有其他函数如gets、...
### 郝斌老师C语言学习笔记 #### 一、终端基础命令 郝斌老师的笔记首先介绍了几个常用的终端命令,这些命令对于操作文件系统至关重要。 - **pwd**:此命令用于显示当前工作目录的完整路径。 - **ls**:列出当前...
### C语言学习笔记知识点梳理 #### 一、计算机系统概述 **1.1 计算机系统功能** - **输入**: 将外部数据输入到计算机系统中。 - **处理**: 数据通过程序处理后生成新的数据。 - **输出**: 处理后的数据输出到外部...
程序中的数据存储在栈和堆中,通过malloc()和free()函数进行动态内存分配和释放。理解指针是掌握C语言的关键,指针可以作为变量的地址,允许直接访问和修改存储在内存中的值,实现高效的数据操作和灵活的函数参数...
本自学记录包为C语言学习者提供了一套完整的学习体系,通过实例项目的方式让学习者能够将理论与实践相结合,从而更有效地掌握C语言的编程技巧。无论学习者是编程初学者还是有基础的开发者,通过这些实例项目的反复...
在C语言学习中,了解内存管理、数据类型、输入输出函数...以上就是C语言学习笔记第一课中的主要知识点。学习C语言时,理解并熟练运用这些基础知识是编写程序的关键。通过不断地练习和实践,可以更好地掌握C语言的精髓。
嵌入式C语言学习笔记 本文总结了嵌入式C语言学习笔记的要点,涵盖了运算符优先级、指针的用法、二分法查找、字符串操作、冒泡排序法、寻址方式、存储区域、volatile含义及应用等多个方面。 一、运算符优先级 在...
3. **内存管理**:包括动态内存分配(malloc, free)和栈与堆的区别。理解这些能帮助开发者避免内存泄漏和提高程序效率。 4. **结构体和联合体**:结构体(struct)用于组合不同类型的数据,联合体(union)在同一...
这份“C语言学习笔记总结”是个人的学习成果集合,包含了对C语言核心概念、语法结构以及编程实践的深度理解和归纳。 一、C语言基础 1. 变量与数据类型:C语言提供了基本的数据类型,如整型(int)、浮点型(float...
链表则提供了一种动态分配内存的方式,使得在插入和删除元素时效率更高。栈是一种后进先出(LIFO)的数据结构,常见于递归和表达式求值等问题;队列是一种先进先出(FIFO)的数据结构,常用于任务调度和缓冲区管理。...
内存管理是C语言中的一个高级话题,包括动态内存分配(malloc、calloc、realloc、free)和指针操作。指针是C语言的一个独特特征,它允许直接访问内存地址,从而实现高效的数据操作和低级别的控制。然而,不当的内存...
### C语言学习笔记_指针 #### 指针的重要性及基本概念 在C语言中,指针是一种非常重要的数据类型,它不仅丰富了C语言的功能,还是衡量开发者是否熟练掌握C语言的关键指标之一。指针能够让程序员像操作低级语言(如...
- 指针:C语言的强项之一,用于高效地处理内存和数据结构,游戏中的动态内存分配、数组、链表等都离不开指针。 - 文件操作:可能需要读写配置文件、保存游戏进度等,C语言提供了标准库函数来进行文件操作。 - 图形库...
C语言学习笔记涵盖了基础语法、数据类型、控制结构、函数、指针、内存管理、文件操作等多个方面。在基础语法部分,笔记详细解释了C语言的基本构成,包括标识符、关键字、数据类型和变量的声明与定义。通过实例代码...
通过指针,我们可以实现高效的数据交换,动态内存分配以及对复杂数据结构(如链表、树)的操作。正确理解和使用指针是C语言高级编程的关键。 数组是C语言中的另一种数据结构,可以存储相同类型的一组元素。一维数组...