在Linux中:
什么是分段错误?我知道它会崩溃程序,但这是某种内存泄漏问题,还是完全不相关的东西?另外,你如何处理这些? 这通常是计算机设置或应用程序本身的问题吗?
此外,这种情况是否也发生在其他操作系统中?
答案 0 :(得分:27)
分段错误是指程序尝试访问操作系统未分配的内存,或者不允许访问的内存。
“细分”是计算机上每个进程的概念,具有自己独特的虚拟地址空间。因此,当进程A读取内存位置0x877时,它会读取驻留在RAM中不同物理位置的信息,而不是进程B读取自己的0x877时的信息。
所有现代操作系统都支持和使用分段,因此所有操作系统都会产生分段错误。
要处理分段错误,请修复导致它的代码。它通常表示编程不佳,尤其是边界条件错误,错误的指针操作或关于共享库的无效假设。有时像任何问题一样,段错误可能是由错误的硬件引起的,但通常情况并非如此。
答案 1 :(得分:6)
'segfault'是指程序访问受保护或无效的内存;通常是由于糟糕的内存管理或错误的指针操作。
操作系统检测到无效的内存访问并使应用程序崩溃。