From eec547729472857e3c6f30fc52472503349ad325 Mon Sep 17 00:00:00 2001 From: jinzhongjia Date: Mon, 20 Nov 2023 00:09:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=80=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- learn/advanced/memory_manage.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/learn/advanced/memory_manage.md b/learn/advanced/memory_manage.md index c17a8fb8..adc5a51d 100644 --- a/learn/advanced/memory_manage.md +++ b/learn/advanced/memory_manage.md @@ -4,4 +4,11 @@ outline: deep # 内存管理 -TODO +> zig 在内存管理方面采取了类似 C 的方案,完全由程序员管理内存,这也是为什么 zig 没有运行时开销的原因,同时这也是为什么 zig 可以在如此多环境(包括实时软件、操作系统内核、嵌入式设备和低延迟服务器)中无缝工作的原因。 + +事实上,在 C 开发中最难以调试的 bug 往往是由于错误的内存管理引起的, zig 在此基础上给我们提供了少量的保护,但仅仅是少量的保护(这点就不如 rust 的内存安全了) + +> 对于可以自由操控的程序员,明白数据在内存中存在的形式极为重要,这会使你明确知道你的变量被分配在什么上面。 + +zig 针对这种模式提供的方案是:显式声明并传递使用的内存分配模式,需要我们本身自己来显式声明使用的内存分配函数,并传递它。同时,标准库不会为我们做任何的隐式分配。 +