跳到内容

不安全代码

语言中的这些部分被认为是不安全的

"不安全" 意味着可能会导致内存损坏、分段错误和崩溃。例如

a = 1
ptr = pointerof(a)
ptr[100_000] = 2 # undefined behaviour, probably a segmentation fault

然而,常规代码通常不涉及指针操作或未初始化的变量。C 绑定通常包装在安全的包装器中,这些包装器包括空指针和边界检查。

没有一种语言是 100% 安全的:有些部分不可避免地是底层的,与操作系统交互并涉及指针操作。但是,一旦您对这些内容进行抽象并在更高层面上进行操作,并假设(经过数学证明或彻底测试)底层是安全的,您就可以确信整个代码库都是安全的。