C语言中的内存管理:malloc 和 free 函数详解
在 C 语言中,'malloc' 和 'free' 是用于动态分配和释放内存的函数。
'malloc' 函数用于动态分配内存。它接受一个参数,即所需内存的字节数,并返回一个指向分配内存的指针。如果内存分配成功,则返回指向分配内存的指针;如果内存分配失败,则返回空指针。
语法:'void* malloc(size_t size);'
- 'size_t' 是一个无符号整数类型,表示所需内存的字节数。
- 'void*' 是一个通用指针类型,可以指向任何类型的数据。
示例:
int* ptr = (int*)malloc(10 * sizeof(int)); // 分配 10 个 int 大小的内存空间
if (ptr == NULL) {
// 内存分配失败
} else {
// 内存分配成功
// 可以使用 ptr 指针来访问和操作分配的内存
}
'free' 函数用于释放先前通过 'malloc' 函数动态分配的内存。它接受一个指向动态分配内存的指针,并释放该内存。
语法:'void free(void* ptr);'
- 'void*' 是一个通用指针类型,指向要释放的内存。
示例:
int* ptr = (int*)malloc(10 * sizeof(int)); // 分配 10 个 int 大小的内存空间
// 使用 ptr 指针来访问和操作分配的内存
free(ptr); // 释放先前分配的内存
需要注意的是,使用 'malloc' 函数分配的内存必须通过 'free' 函数来释放,否则会出现内存泄漏的问题。另外,释放已经释放的内存或非动态分配的内存会导致未定义的行为。
原文地址: https://www.cveoy.top/t/topic/plQS 著作权归作者所有。请勿转载和采集!