目录
- 引言
- malloc 函数
- malloc 函数原型
- malloc 函数作用
- malloc 函数用法
- free 函数
- free 函数原型
- free 函数作用
- free 函数用法
- _msize 函数
- _msize 函数原型
- _msize 函数作用
- _msize 函数用法
- 结尾
引言
本篇博客将详细介绍 C 语言中 malloc
、free
和 _msize
等函数的相关内容,同时以详细的代码及注释形式举例说明其用法。
malloc 函数
malloc 函数原型
void* malloc(size_t _Size);
malloc 函数作用
malloc
函数可以用来申请堆空间,然后返回这段空间的首地址,这段空间可以在程序运行期间使用。
malloc 函数用法
以下是 malloc
函数的用法举例:
int* p = (int*)malloc(sizeof(int) * 10);
上述代码在堆上分配了一块空间,大小为 10 * sizeof(int)
,并将其首地址存储在指针变量 p
中。我们可以使用指针变量 p
来访问这段空间中的元素,例如:
p[0],p[1],p[2],p[3],p[4]...p[9]
这是一个包含10个元素的 int
类型数组。
以上的例子只是申请了一块一维的空间,那如果我们想要一块二维或三维的空间怎么办呢?下面我们就会使用 malloc
函数在二维、三维的空间上进行操作。
假设我们要申请一个大的多维数组,例如:3 行 4 列共 12 个元素的二维数组或三维数组,我们可以这样:
// 申请 3 行 4 列 共 12 个元素的二维数组空间
int(*p1)[4] = (int(*)[4])malloc(sizeof(int) * 3 * 4);
// 申请 3 行 4 列 共 12 个元素的三维数组空间
int(*p1)[3][4] = (int(*)[3][4])malloc(sizeof(int) * 3 * 4);
free 函数
free 函数原型
void free(void* _Block);
free 函数作用
free
函数用来释放之前使用 malloc
函数所分配的堆空间。
free 函数用法
以下是 free
函数的用法举例:
free(p);
上述代码释放了之前使用 malloc
函数分配的空间。
_msize 函数
_msize 函数原型
size_t _msize(void* _Block );
_msize 函数作用
_msize
函数可以用于获取之前使用 malloc
函数分配的堆空间的大小。
_msize 函数用法
以下是 _msize
函数的用法举例:
size_t size = _msize(p);
上述代码获取了之前使用 malloc
函数分配的堆空间大小,并将其存储在 size
变量中。
结尾
以上便是关于 malloc
、free
和 _msize
函数的相关内容及实例举例。了解这些函数对于进行 C 语言编程非常有帮助。