zoukankan      html  css  js  c++  java
  • C/C++Program receive signal SIGSEGV,Segmentation fault问题

    情况一:

    代码及调试发现的问题如下图:

     1 #include<stdio.h>
     2 #include<malloc.h>
     3 typedef struct LNode{
     4 int data;
     5 struct LNode *next;
     6 }LNode,*Linklist;
     7 
     8 void Create_Link_pos(LNode* L){ //正序插入-尾插法
     9     Linklist p,q;//p用来指示链尾,q指示新的待插入节点;
    10     int len;
    11     scanf("%d",&len);
    12     L->data=len; //带头结点,用头节点数据域存放链表长度
    13     p=L;
    14     int num;
    15     for(int i=1;i<=len;i++){
    16         q=(LNode*)malloc(sizeof(LNode));
    17         scanf("%d",&num);
    18         q->data=num;
    19         p->next=q;
    20         p=q;
    21     }
    22     p->next=NULL;
    23 }
    24 void Create_Link_rev(LNode* L){ //逆序插入-头插法
    25    
    26     int len;
    27     scanf("%d",&len);
    28     L->data=len;//带头结点,用头节点数据域存放链表长度
    29     int num;
    30     for(int i=1;i<=len;i++){
    31         Linklist q=(LNode*)malloc(sizeof(LNode));
    32         scanf("%d",&num);
    33         q->data=num;
    34         q->next=L->next;
    35         L->next=q;
    36     }
    37 }
    38 
    39 void Printf_Link(LNode* L){
    40     Linklist p=L->next;
    41     while(p!=NULL){
    42         printf("%d ",p->data);
    43         p=p->next;
    44 }
    45 printf("
    ");
    46 }
    47 
    48 
    49 int main(){
    50       Linklist h1,h2;
    51     //h1=(LNode*)malloc(sizeof(LNode));
    52     //h2=(LNode*)malloc(sizeof(LNode));
    53       h1->next=NULL;
    54       h2->next=NULL;
    55       Create_Link_pos(h1);
    56       Printf_Link(h1);
    57       Create_Link_rev(h2);
    58       Printf_Link(h2);
    59       return 0;
    60 
    61 }

    问题在于h1是野指针,没有开辟空间便执行了h1->next语句;

    解决方法: 在出错句前面增加
    h1=(LNode*)malloc(sizeof(LNode));

    及把上面贴出来的代码,出错行前面两行注释取消注释即可

    情况二:

    scanf输入不加取地址符

    情况3:

     写数组时,pre或者cur越界

    情况三,指针未正确赋值:

     本来中序+层次遍历返回构造好的二叉树根指针,但由于中间”=“写成了”==“,导致未能出现赋值,遍历的时候便出现内存访问错误。

    更新:2020-4-6

  • 相关阅读:
    python读写excel等数据文件方法
    学习记录2
    NLP、ML/DL等基础概念
    修改代码的艺术-读后感
    Python读取文本文件数、excel文件数据
    学习记录1
    数据分析平台
    Pycharm搜索关键词的快捷键
    程序员的自我修养阅读笔记三
    第十周学习
  • 原文地址:https://www.cnblogs.com/debug-the-heart/p/12288906.html
Copyright © 2011-2022 走看看