mallocfree函数的用法
时间: 2023-07-30 21:11:08 浏览: 94
malloc和free是C语言中用于动态内存分配和释放的函数。
malloc函数用于在堆上分配一块指定大小的内存空间。它的原型定义在stdlib.h头文件中:
void* malloc(size_t size);
malloc函数接受一个参数size,表示需要分配的内存大小(单位是字节)。它返回一个void类型的指针,指向分配的内存块的起始地址。如果分配失败,malloc函数返回NULL。
下面是一个使用malloc函数动态分配内存的示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n = 5;
ptr = (int*) malloc(n * sizeof(int));
if(ptr == NULL) {
printf("内存分配失败\n");
return 1;
}
for(int i = 0; i < n; i++) {
ptr[i] = i + 1;
}
for(int i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
free(ptr);
return 0;
}
在上面的示例中,我们使用malloc函数动态分配了一个能容纳5个int类型数据的内存块。然后,我们使用指针ptr来操作这个内存块。最后,使用free函数释放了这个内存块,以便将其返回给系统。
free函数用于释放通过malloc函数分配的内存空间。它的原型定义在stdlib.h头文件中:
void free(void* ptr);
free函数接受一个参数ptr,表示要释放的内存块的起始地址。调用free函数后,系统将回收这块内存空间,可以重新被其他程序使用。
需要注意的是,调用free函数后,释放的内存空间不再属于我们的程序,访问已释放的内存将导致未定义的行为,甚至可能引发程序崩溃。因此,使用free函数后,建议将指针ptr设置为NULL,以避免误用。
总结:
- malloc函数用于动态分配内存空间,返回指向分配内存的指针。
- free函数用于释放动态分配的内存空间,将其返回给系统。
阅读全文