mallocfree函数的用法
时间: 2023-07-30 15:11:08 浏览: 59
malloc()和free()是C语言中动态内存分配的函数。
malloc()函数用于在堆内存中动态分配指定大小的内存空间,并返回一个指向该内存空间的指针。其原型如下:
void *malloc(size_t size);
其中,size_t是一个无符号整数类型,表示要分配的内存空间的字节数。malloc()函数返回一个指向分配的内存空间的指针,如果分配失败,则返回NULL。
示例用法:
```c
int* ptr;
ptr = (int*)malloc(5 * sizeof(int)); // 分配5个int大小的内存空间
if (ptr == NULL) {
// 处理内存分配失败的情况
} else {
// 内存分配成功,可以使用ptr指针访问分配的内存空间
// ...
free(ptr); // 释放分配的内存空间
}
```
free()函数用于释放之前通过malloc()函数分配的内存空间。其原型如下:
void free(void *ptr);
其中,ptr是之前通过malloc()函数分配的内存空间的指针。使用free()函数释放内存空间后,该指针将成为一个野指针,不能再访问该内存空间。
示例用法:
```c
int* ptr;
ptr = (int*)malloc(5 * sizeof(int)); // 分配5个int大小的内存空间
if (ptr == NULL) {
// 处理内存分配失败的情况
} else {
// 内存分配成功,可以使用ptr指针访问分配的内存空间
// ...
free(ptr); // 释放分配的内存空间
ptr = NULL; // 避免成为野指针
}
```
需要注意的是,使用malloc()函数分配的内存空间在使用完后必须通过free()函数释放,否则会导致内存泄漏。另外,对已经释放的内存空间进行访问是一种未定义行为,可能导致程序崩溃或其他不可预测的错误。