C语言的动态数据结构
1. 动态内存分配简介
在C语言中,动态内存分配是一项至关重要的技能。与静态内存分配不同,动态内存分配允许程序在运行时根据需要申请和释放内存。这不仅提高了内存的利用率,还增强了程序的灵活性。C语言提供了四个标准库函数来处理动态内存分配: malloc()
、 calloc()
、 realloc()
和 free()
。
1.1 malloc()
函数
malloc()
函数用于分配指定大小的内存块,并返回指向这块内存的指针。如果分配失败,它会返回 NULL
。以下是 malloc()
的基本用法:
#include <stdlib.h>
int *ptr = (int *)malloc(sizeof(int) * 10);
if (ptr == NULL) {
// 处理内存分配失败
}
1.2 calloc()
函数
calloc()
函数用于分配指定数量的内存块,并将这些内存块初始化为零。与 malloc()
不同, calloc()
可以更方便地分配和初始化数组。以下是 calloc()
的基本用法: