我可以通过添加 ram 来避免分段错误

could I potentially dodge segmentation faults by adding ram?

本文关键字:分段 错误 可以通过 添加 ram      更新时间:2023-10-16

正如我的标题所问的那样,我想知道如果我添加更多 RAM,我是否可以潜在地躲避我的程序的分段错误崩溃? 任何关于如何躲避的建议都是值得赞赏的,但这个问题非常重要,因为它取决于是否升级到 32GB RAM 而不是 8

程序是用 C++ 编写的

就像"内存不足"一样,"分段错误"不是指RAM。

在典型的现代计算机中,每个进程都有自己的地址空间。那只是一堆地址。其中一些地址可能会映射到 RAM,但它们也可以映射到 ROM、VRAM、磁盘上的文件或操作系统支持映射到进程地址空间的任何其他内容。

分段错误是对进程地址空间部分的无效访问。它们可能无效,因为地址不存在(因为它未映射到任何内容(,或者因为地址无法写入(因为它以只读方式映射(。它们是由程序中的错误引起的。

添加 RAM 不会更改任何进程地址空间的大小或布局。

不,应用程序看到的内存是虚拟的。这意味着操作系统会将应用程序看到的地址重新映射到支持物理内存。

作为优化内存,应用程序

不请求不会映射到真实内存,如果应用程序尝试访问它将生成故障。

因此,无论您拥有 16 MB 还是 16 GB 的物理内存都没关系。当程序中的错误导致它尝试访问它从未获得的内存时,就会发生隔离错误。