Segmentation Fault 段错误的原因分析

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;






           

猜你喜欢

转载自blog.csdn.net/qq_40334837/article/details/81062007