1

这是我的结构:

typedef struct termNode{
    char term[41];
    int matched;
    struct termNode *next;
} termNode;

它适用于以下代码:

int add_term_to_list(char term[41]){
    int i = 0;  
    termNode *tmp = NULL;
    if(headTerm == NULL){
        if(create_head(term) != 0)
             return 1;
        else 
             return 0;
    }
    tmp = malloc(sizeof(termNode*));
    if(tmp == NULL)
        return 1;
    while(term[i] != '\n'){
        tmp -> term[i] = term[i];
        i++;
    }
    tmp -> term[i] = 0;
    tmp -> matched = 0;
    tmp -> next = NULL;
    currTerm -> next = tmp;
    currTerm = tmp;
    return 0;
}

但是,如果我在结构中添加另一个变量:

typedef struct termNode{
        char term[41];
        int matched;
        int size;
        struct termNode *next;
    } termNode;

然后当我尝试运行时出现段错误。这是我的代码中唯一的变化。有谁知道为什么会这样?

我更新了代码 -> make clean -> make -> run,我得到了段错误。

4

0 回答 0