C-如何创建和访问2D链接列表元素



我正在尝试创建2D链接列表。当我尝试访问其元素时,会导致分割故障。

这是代码的一部分

struct Node{
    char *data;
    int count;
    struct Pair *p;
    struct Node *next;
};
struct Pair{
    char *data;
    int count;
    struct Pair *next;
};
void insertPairs(char *word1, char *word2, struct Node **head){
struct Node *ptr = *head;
while(ptr != NULL) {
    if(strcmp(ptr->data, word1) == 0){
        struct Pair *pairPtr = ptr->p;
        while(pairPtr != NULL){
            if(strcmp(pairPtr->data, word2) == 0){ //Segmentation Fault
                pairPtr->count = pairPtr->count + 1;
                break;
            }
        }
        struct Pair *tmp = (struct Pair*) malloc(sizeof(struct Pair));
        tmp->data = word2;
        tmp->count = 1;
        tmp->next = pairPtr;
        pairPtr = tmp;
        break;
    }
    ptr = ptr->next;
}
}

我进行了一些调试。

这条线给我分段故障if(strcmp(pairPtr->data, word2) == 0)

为什么if(strcmp(ptr->data, word1) == 0)工作但不起作用?我该怎么办?

查看您提供的代码,我无法检测到问题。word2pairPtr->data是否可能是无效的指针,或者不是指向零终端的字节字符串的指针?在这种情况下

查看:http://en.cppreference.com/w/c/string/byte/strcmp

相关内容

  • 没有找到相关文章

最新更新