7-1 segmentation fault(p159)

segmentation fault一般是由于解除引用一个未初始化或非法值的指针引起的,例如

int *p = 0;
*p = 17;

一个微妙之处在于,段错误一般都是一个简洁的症状,另外如果未初始化的指针恰好具有未对齐的值,它将会产生总线错误而非段错误。

通常情况下段错误的直接原因是:

  • 解引用一个包含非法值的指针

  • 解引用一个空指针

  • 未得到正确的权限

  • 用完了堆栈或堆空间

Last updated

Was this helpful?