c++ - 垃圾收集的概念与非 OOP 语言有何关系

标签 c++ c garbage-collection dynamic-memory-allocation

当使用像 C++ 这样没有自动垃圾收集器的语言时,我知道你必须使用析构函数来清理你的对象。但是“清理”的概念与非 OOP 语言有何关系。例如,在 C 中清理结构和内置类型的标准方法是什么?

举个具体的例子,在编写长时间运行的 C 进程时,清理的相关概念是什么?

最佳答案

根据 wikipedia垃圾收集入口

In computer science, garbage collection (GC) is a form of automatic memory management.

Garbage collection is often portrayed as the opposite of manual memory management, which requires the programmer to specify which objects to deallocate and return to the memory system.

C 语言中,没有自动内存管理 所以我们必须手动内存管理。无论程序(或程序员)分配(动态地,在运行时)内存,程序(或程序员)都需要显式释放内存,使用free()功能。

未能释放分配的内存将导致memory leak .

关于c++ - 垃圾收集的概念与非 OOP 语言有何关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28938358/

相关文章:

c++ - 具有固定起点和终点的多目的地最短路线

c++ - `public` 访问限定符和 `const` ness。 `-Wuninitialized`

c - 多个线程导致更多 CPU 使用

c - Linux 内核模块编程 - 无法使用 CONFIG_CC_STACKPROTECTOR_REGULAR : -fstack-protector not supported by compiler

.net - 从托管 'ref' 内部指针恢复包含 GC 对象

java - 无需变量赋值的对象创建

c - Git - 垃圾收集器是否允许并行运行?

C++ - 错误 C2568 - 表达式必须具有整数或无作用域的枚举类型

c++ - 模板中模板类型相关结构的特化

c - 解释以下 Turbo C 代码中如何以及为何使用指针