我可以通过添加 ram 来避免分段错误
could I potentially dodge segmentation faults by adding ram?
正如我的标题所问的那样,我想知道如果我添加更多 RAM,我是否可以潜在地躲避我的程序的分段错误崩溃? 任何关于如何躲避的建议都是值得赞赏的,但这个问题非常重要,因为它取决于是否升级到 32GB RAM 而不是 8
程序是用 C++ 编写的
就像"内存不足"一样,"分段错误"不是指RAM。
在典型的现代计算机中,每个进程都有自己的地址空间。那只是一堆地址。其中一些地址可能会映射到 RAM,但它们也可以映射到 ROM、VRAM、磁盘上的文件或操作系统支持映射到进程地址空间的任何其他内容。
分段错误是对进程地址空间部分的无效访问。它们可能无效,因为地址不存在(因为它未映射到任何内容(,或者因为地址无法写入(因为它以只读方式映射(。它们是由程序中的错误引起的。
添加 RAM 不会更改任何进程地址空间的大小或布局。
不,应用程序看到的内存是虚拟的。这意味着操作系统会将应用程序看到的地址重新映射到支持物理内存。
作为优化内存,应用程序不请求不会映射到真实内存,如果应用程序尝试访问它将生成故障。
因此,无论您拥有 16 MB 还是 16 GB 的物理内存都没关系。当程序中的错误导致它尝试访问它从未获得的内存时,就会发生隔离错误。
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 分段错误当我试图运行程序时出错
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 尝试使用集合函数时出现分段错误
- 我无法缩小此分段错误的原因
- g++的分段错误(在NaN上使用to_string两次时)
- 我是如何在这段代码中出现分段错误的
- 创建结构的数组时遇到分段错误
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 在 c++ 中实现 Trie 时出现分段错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 为什么我遇到分段错误?
- 动态类的分段错误(家庭作业问题)
- 分段错误 - 读取初始化指针的数组
- 如何摆脱C ++中的分段错误错误?
- 使用 CTYPE 时出现分段错误
- 为什么代码给出分段错误?