C语言C语⾔提供了哪些动态内存分配函数?

一、问题

C语⾔中提供了⼏种相关函数,动态地开辟内存和释放存储单元。下⾯介绍⼀下这⼏种函数的功能。

二、解答

(1) malloc()函数。

函数原型为:

cpp 复制代码
void *malloc(unsigned int size);

该函数的功能是分配长度为 size 字节的内存块。

如果分配成功,则返回指向被分配内存的指针;否则返回空指针 NULL。注意,当内存不再使⽤时,要⽤ free() 函数释放内存块。

(2)calloc()函数。

函数原型为:

cpp 复制代码
void *calloc(unsigned n,unsigned size);

该函数的功能是在内存的动态区存储中分配 n 个长度为 size 的内存块。

如果分配成功,则返回指向被分配内存的指针;否则返回空指针 NULL。同样,当内存不再使⽤时,要⽤ free() 函数释放内存块。

同时,⽤ calloc() 函数可以为⼀维数组开辟动态存储空间,n 为数组元素个数,每个元素长度为 size。

(3) realloc()函数。

函数原型为:

cpp 复制代码
void *realloe(void *mem_address,unsigned int newsize);

该函数的功能是改变 mem_ address 所指内存区域的⼤⼩为 newsize 长度。 如果重新分配内存成功,则返回指向被分配内存的指针;否则返回空指针 NULL。 当内存不再使⽤时,要应⽤ free() 函数将内存空间释放。

(4) free() 函数。

函数原型为:

cpp 复制代码
void * free(void *p);

在 malloc() 函数、calloc() 函数和 realloc() 函数中均提到在不使⽤内存空间时要应⽤此函数释放内存空间,因此该函数的功能就是释放指针 p 所指向的内存空间。如果 p 为 NULL 或者指向不存在的内存块,则不做任何操作。

三、总结

注意,free( )函数所释放的内存空间⼀定要是 malloc( )函数、calloc( )函数或者 realloc( ) 函数所分配的内存。

相关推荐
fqbqrr9 小时前
2606C++,C++构的多态
开发语言·c++
biter down10 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
threelab12 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师7212 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴12 小时前
线程的生命周期之线程“插队“
java·开发语言·python
Hello:CodeWorld12 小时前
C 风格变参 vs C++ 变参模板:核心区别与选型指南
c语言·c++·算法
kaikaile199513 小时前
数字全息图处理系统(C# 实现)
开发语言·c#
秋914 小时前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
十月的皮皮14 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习