线程1收到信号SIGSEGV,分段错误

大师

我尝试使用gdb调试代码:我收到错误提示

Thread 1 received signal SIGSEGV, Segmentation fault

这是我的代码:

typedef struct list {
    node *head;
    node *tail;
    int number_of_nodes;
} List;

typedef struct queue {
    List *ptr_list;
} Queue;

void queue_initialize(Queue *queue_list) {
    //TODO
    printf("hello inside queue_initialize\n");  
    list_initialize(queue_list->ptr_list);
    printf("hello after queue_initialize\n");
    return;
}

void list_initialize(List *ptr_list) {
    //TODO
    printf("hello in list_initialize\n");
    ptr_list->head = 0;
    printf("hello\n");
    ptr_list->tail = 0;
    printf("hello\n");
    ptr_list->number_of_nodes = 0;
    printf("hello after list_initialize\n");
}

当我调用该函数时,queue_initialize(Queue *queue_list)我得到此输出

hello before queue_initialize
hello inside queue_initialize
hello in list_initialize

但预期的输出是:

hello before queue_initialize
hello inside queue_initialize
hello in list_initialize
hello 
hello
hello after list_initialize

谁能告诉我这段代码有什么问题吗?非常感谢您的努力,请快速帮助我

我很确定这些行中的错误在这里:

ptr_list->head = 0;
ptr_list->tail = 0;
ptr_list->number_of_nodes = 0;
chqrlie

必须先分配List结构,然后才能初始化其成员:

#include <stdio.h>
#include <stdlib.h>

typedef struct list {
    node *head;
    node *tail;
    int number_of_nodes;
} List;

typedef struct queue {
    List *ptr_list;
} Queue;

void list_initialize(List *ptr_list) {
    //TODO
    printf("hello in list_initialize\n");
    if (ptr_list) {
        ptr_list->head = 0;
        printf("hello\n");
        ptr_list->tail = 0;
        printf("hello\n");
        ptr_list->number_of_nodes = 0;
    }
    printf("hello after list_initialize\n");
}

void queue_initialize(Queue *queue_list) {
    printf("hello inside queue_initialize\n"); 
    if (queue_list) {
        queue_list->ptr_list = malloc(sizeof(List));
        list_initialize(queue_list->ptr_list);
    }
    printf("hello after queue_initialize\n");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

程序收到信号SIGSEGV,分段故障错误

来自分类Dev

调用类指针时,程序收到信号SIGSEGV,分段错误

来自分类Dev

“程序收到信号 SIGSEGV,分段错误。” 来自 gdb 调试器的错误消息

来自分类Dev

遇到Powerpc的汇编程序收到信号SIGSEGV分段错误

来自分类Dev

如何在C程序中发现问题:程序接收到的信号SIGSEGV,分段错误

来自分类Dev

遇到Powerpc的汇编程序收到信号SIGSEGV分段错误

来自分类Dev

sqlite3程序收到信号SIGSEGV,sqlite3_get_table()中的分段错误

来自分类Dev

程序收到信号 SIGSEGV,分段错误。最终 () 中的 0x56557055

来自分类Dev

ANSI C-程序接收到的信号SIGSEGV,分段故障

来自分类Dev

在0xdeadd00d(code = 1),线程17729运行JNI android app A / libc:致命信号11(SIGSEGV)时收到错误消息

来自分类Dev

具有结构数组的线程返回 SIGSEGV(分段错误错误)?

来自分类Dev

程序收到信号SIGSEGV,分段故障。我打电话给printf的时候

来自分类Dev

SIGSEGV分段错误,不同的消息

来自分类Dev

SIGSEGV分段错误,不同的消息

来自分类Dev

不断收到分段错误?

来自分类Dev

线程1:信号SIGABRT错误(Swift 2)

来自分类Dev

线程1:信号SIGBART按钮错误

来自分类Dev

致命信号11(SIGSEGV)位于0x00000000(代码= 1),线程655(线程77)

来自分类Dev

收到SIGSEGV信号后,过程行为如何?

来自分类Dev

运行应用程序时线程1信号信号错误?

来自分类Dev

应用程序未运行,显示错误A / libc:致命信号11(SIGSEGV)位于0x00000e20(代码= 1),线程8068

来自分类Dev

Android从线程错误中调用jni方法(A / libc:致命信号11(SIGSEGV),代码1,在tid 13620(AsyncTask#3)中的故障加法器0xdeadbaad)

来自分类Dev

线程2收到信号SIGBUS

来自分类Dev

开发C ++中的SIGSEGV(分段错误)错误

来自分类Dev

致命信号11(SIGSEGV)位于0x0000001c(代码= 1),线程18178

来自分类Dev

客户收到消息的分段错误

来自分类Dev

QPainter.drawText()SIGSEGV分段错误

来自分类Dev

PySCIPOpt经常因分段错误(SIGSEGV)而中断

来自分类Dev

Mat :: at <double>(i,j)SIGSEGV,分段错误

Related 相关文章

  1. 1

    程序收到信号SIGSEGV,分段故障错误

  2. 2

    调用类指针时,程序收到信号SIGSEGV,分段错误

  3. 3

    “程序收到信号 SIGSEGV,分段错误。” 来自 gdb 调试器的错误消息

  4. 4

    遇到Powerpc的汇编程序收到信号SIGSEGV分段错误

  5. 5

    如何在C程序中发现问题:程序接收到的信号SIGSEGV,分段错误

  6. 6

    遇到Powerpc的汇编程序收到信号SIGSEGV分段错误

  7. 7

    sqlite3程序收到信号SIGSEGV,sqlite3_get_table()中的分段错误

  8. 8

    程序收到信号 SIGSEGV,分段错误。最终 () 中的 0x56557055

  9. 9

    ANSI C-程序接收到的信号SIGSEGV,分段故障

  10. 10

    在0xdeadd00d(code = 1),线程17729运行JNI android app A / libc:致命信号11(SIGSEGV)时收到错误消息

  11. 11

    具有结构数组的线程返回 SIGSEGV(分段错误错误)?

  12. 12

    程序收到信号SIGSEGV,分段故障。我打电话给printf的时候

  13. 13

    SIGSEGV分段错误,不同的消息

  14. 14

    SIGSEGV分段错误,不同的消息

  15. 15

    不断收到分段错误?

  16. 16

    线程1:信号SIGABRT错误(Swift 2)

  17. 17

    线程1:信号SIGBART按钮错误

  18. 18

    致命信号11(SIGSEGV)位于0x00000000(代码= 1),线程655(线程77)

  19. 19

    收到SIGSEGV信号后,过程行为如何?

  20. 20

    运行应用程序时线程1信号信号错误?

  21. 21

    应用程序未运行,显示错误A / libc:致命信号11(SIGSEGV)位于0x00000e20(代码= 1),线程8068

  22. 22

    Android从线程错误中调用jni方法(A / libc:致命信号11(SIGSEGV),代码1,在tid 13620(AsyncTask#3)中的故障加法器0xdeadbaad)

  23. 23

    线程2收到信号SIGBUS

  24. 24

    开发C ++中的SIGSEGV(分段错误)错误

  25. 25

    致命信号11(SIGSEGV)位于0x0000001c(代码= 1),线程18178

  26. 26

    客户收到消息的分段错误

  27. 27

    QPainter.drawText()SIGSEGV分段错误

  28. 28

    PySCIPOpt经常因分段错误(SIGSEGV)而中断

  29. 29

    Mat :: at <double>(i,j)SIGSEGV,分段错误

热门标签

归档