第 4 章 所有权与移动
谈及内存管理,我们希望编程语言具备两个特点: - 希望能在我们选定的时机及时释放,这使我们能控制程序的内存消耗; - 在对象被释放后,我们绝不希望继续使用指向它的指针,这是未定义行为,会导致崩溃和安全漏洞。 ## 所有权 在使用指向一个堆内存的指针时,人们普遍认为,虽然其他代码也可以创建指向拥有内存的临时指针,但是在拥有者决定销毁拥有对象之前,其他代码有责任确保其指针已消失。这便是所有权的示例,拥
TOPIC COLLECTION / 主题手记
沿着一个主题,拾起散落的思考。
让有关的文字,在这里慢慢生长。
已加载 5 篇文章,按最新排序。
谈及内存管理,我们希望编程语言具备两个特点: - 希望能在我们选定的时机及时释放,这使我们能控制程序的内存消耗; - 在对象被释放后,我们绝不希望继续使用指向它的指针,这是未定义行为,会导致崩溃和安全漏洞。 ## 所有权 在使用指向一个堆内存的指针时,人们普遍认为,虽然其他代码也可以创建指向拥有内存的临时指针,但是在拥有者决定销毁拥有对象之前,其他代码有责任确保其指针已消失。这便是所有权的示例,拥
Binary! Gentoo gose Binary! 在一月的倒数前两天,Gentoo 整了个新活。不再像以前只有过于复杂的软件提供了二进制文件(例如 linux 内核和 firefox),现在整个包管理器 Portage 都提供了二进制的选择。 > You probably all know Gentoo Linux as your favourite source-based distrib
大多数 Linux 软件都是动态链接的,动态链接可以使我们的程序不需要将所有所需要的库都打包到自身当中去。不过这样也有弊处,当目标系统比较旧,或者压根就没有我们需要的库的时候,我们的二进制文件就无法在目标系统中运行。 ## 安装交叉编译工具 不光光需要使用 来安装对应的 target,还需要 linker 来帮助构建到目标平台。 macOS Ubuntu 在安装好 target 与 linker