1 访问不存在的内存地址
在一个三个节点的链表中,有pHeader->pNext->pNext我们将pHeader->pNext后面的节点全部删除,因此只有pHeader->pNext
代码中,使用 pHeader->pNext->pNext = NULL; 段错误,因为左值不存在了
2 访问只读的内存地址
比如指针ptr指向的内存地址是一个文件,只读,strcpy写入会出错
char *ptr = "test";
strcpy(ptr, "TEST");
3 访问系统保护的内存地址
如下代码,0地址是不可以访问的,本内核内存管理保护起来,不能赋值
int *ptr = (int *)0;
*ptr = 100;