free 怎么知道释放多大内存的
时间: 2023-03-30 17:02:42 浏览: 63
可以使用函数 free(void* ptr) 来释放内存,其中的参数 ptr 是之前使用 malloc() 或 calloc() 分配的内存的指针。由于内存的大小是在分配时确定的,所以在释放内存时不需要指定大小。
相关问题
free释放内存
在C语言和C++语言中,使用malloc或calloc函数分配内存后,应该使用free函数释放内存。free函数的用法如下:
```
free(pointer);
```
其中,pointer是需要释放的内存空间的指针。调用free函数后,该指针所指向的内存空间就会被释放,并返回给系统进行管理。
需要注意的是,调用free函数时,传入的指针必须是由malloc或calloc函数分配的,否则会导致未定义的行为。另外,不要多次释放同一个指针,否则也会导致未定义的行为。
free释放内存的时候是怎么知道释放内存的大小的?.
在 C/C++ 中,我们通常使用 `free()` 函数释放动态分配的内存。`free()` 函数通常需要传递一个指向动态分配的内存的指针作为参数,来告诉系统要释放哪块内存。但是,`free()` 函数并不需要知道要释放的内存的大小,因为在动态分配内存时,系统会将分配的内存大小记录在内存块的头部。
具体来说,当我们使用 `malloc()` 或 `new` 分配内存时,系统会在分配的内存块的头部记录分配的内存大小。这个记录通常被称为 "内存块头" 或 "内存块标记"。当我们调用 `free()` 函数时,它会读取这个内存块头,并使用它来确定要释放的内存块的大小。因此,`free()` 函数不需要显式地告诉系统要释放多少内存,系统可以自己计算出来。