c语言 - 赛格错误:我不明白为什么



当我尝试在两个不同的地方使用相同的函数时,我遇到了一个非常奇怪的分段错误。

打印电视网络功能在主上工作正常。在主上:

printTVNode(headTVNode); /* Works fine here */
TVNodePointer headTopic = NULL;
TopicEmmissions(&headTopic,headTVNode,desiredTopic);

当我尝试在主题排放功能中使用printTVNode时,会得到Seg错误。

void TopicEmmissions(TVNodePointer * headTopic,TVNodePointer headTVNode,char * desiredTopic){
    TVNodePointer currentTVNode = headTVNode;
    EmmissionPointer currentEmmission;
    EventPointer currentEvent;
    EventPointer topicSubjects = NULL;
    int flag,countEvent = 1,countEmmission = 1;
    printTVNode(headTVNode); /* Get Segmentation Fault here*/
    ...

打印电视网络功能:

void printTVNode(TVNodePointer headTVNode){
    TVNodePointer currentTVNode = headTVNode;
    while ( currentTVNode != NULL ){
        printEmmission(*(currentTVNode->anEmmission));
        currentTVNode = currentTVNode->next;
    }
}

问题似乎在以下行:

printEmmission(*(currentTVNode->anEmmission));

anEmmission NULL的情况下,当您尝试取消引用它时,我认为您会得到段错误。

在执行取消引用之前,请确保检查anEmmission是否未NULL

相关内容

  • 没有找到相关文章

最新更新