为什么需要内存回收
主要原因是避免内存泄漏,导致内存占用不断增加。如果不进行内存回收,程序在运行过程中使用的内存会越来越多,最终导致系统的内存资源耗尽。
内存回收策略有哪些?
主动释放
代表语言为 C/C++
需要用户进行手动的内存释放,主要语言为 C
- 优势:手动释放提供更精确的控制,更高的性能
- 劣势:容易造成内存安全等问题。
下面是一个 C 的简单的例子
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int value;
} MyStruct;
int main() {
// 动态分配结构体内存
MyStruct* ptr = (MyStruct*)malloc(sizeof(MyStruct));
// 存储值
ptr->value = 42;
printf("存储的值为: %d\n", ptr->value);
// 手动释放内存
free(ptr);
return 0;
}