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语言的基础包括变量、数据类型、运算符、流程控制等。变量...
通过指针,我们可以直接操作内存,实现动态内存分配、数据结构如链表的构建,以及高效地传递大对象等。 此外,笔记还涉及了预处理器、输入/输出流(stdio库)和文件操作。预处理器指令如#include用于包含头文件,宏...
C语言提供了malloc和free函数进行动态内存分配和释放,避免了固定大小数组的限制,但需注意内存泄漏问题。 九、输入/输出 标准输入输出库stdio.h提供了scanf和printf函数进行输入输出操作,还有其他函数如gets、...
### 郝斌老师C语言学习笔记 #### 一、终端基础命令 郝斌老师的笔记首先介绍了几个常用的终端命令,这些命令对于操作文件系统至关重要。 - **pwd**:此命令用于显示当前工作目录的完整路径。 - **ls**:列出当前...
### C语言学习笔记知识点梳理 #### 一、计算机系统概述 **1.1 计算机系统功能** - **输入**: 将外部数据输入到计算机系统中。 - **处理**: 数据通过程序处理后生成新的数据。 - **输出**: 处理后的数据输出到外部...
程序中的数据存储在栈和堆中,通过malloc()和free()函数进行动态内存分配和释放。理解指针是掌握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语言的学习材料和实际代码示例,是初学者和进阶者提升C语言技能的宝贵资料。 首先,C语言的基础部分包括语法、数据类型、控制结构和函数。学习笔记可能详细讲解了...
动态内存分配函数如`malloc()`允许在运行时动态分配内存,这对于处理不确定数量的数据非常有用。 字符串在C语言中是一系列字符的集合,空字符串以空字符`\0`结尾,其长度计算时会包括这个空字符,因此空字符串的...
C语言中的指针是一种基础而...本文档为C语言指针的学习笔记,从基础到深入逐步介绍了指针的概念、定义、初始化、运算和使用。通过本文档的阅读,学习者应能更好地掌握C语言中的指针知识,并在实际编程中正确使用指针。
【C语言学习笔记】 在计算机编程领域,C语言是一门基础且重要的编程语言,它以其高效、灵活性和广泛的适用性而备受赞誉。本学习笔记旨在为初学者提供一个清晰的C语言学习路径,通过一系列小程序和项目的实践,帮助...
### C语言学习笔记集锦(教程):深入解析与学习指南 #### 为什么学习C语言? C语言,作为一门历史悠久的编程语言,自1972年由贝尔实验室的丹尼斯·里奇发明以来,便成为了计算机科学领域的基石。尽管随着时间的...