free和malloc
时间: 2024-07-12 19:01:33 浏览: 66
浅谈C中的malloc和free
在C/C++等语言中,`free` 和 `malloc` 都是内存管理的关键函数。
1. `malloc()`:这是一个标准库函数,用于动态分配内存。当你不确定数据大小或需要灵活地增加或减少内存时,会用到这个函数。它的原型通常像这样:`void *malloc(size_t size)`。传入一个整数参数表示需要的字节数,返回一个指向新分配内存的指针。如果分配失败(没有足够的内存),它将返回NULL。
2. `free()`:与`malloc()`相对应,`free()`函数用于释放之前由`malloc()`、`calloc()`或`realloc()`等函数分配的内存。它的原型是`void free(void *)`,接受一个指向已分配内存的指针作为参数。调用`free(ptr)`后,该块内存就会归还给系统,可供其他程序使用。如果试图释放未初始化的内存或者已经被释放过的内存,可能会导致运行时错误。
阅读全文