예외가 throw됨: 읽기 액세스 위반입니다. 처리되지 않은 예외가 throw됨: 읽기 액세스 위반입니다. 두개가 뜹니다.

조회수 521회
#include<stdio.h>
#include<stdlib.h>
typedef struct treeNode
{
    element key;
    struct treeNode* left;
    struct treeNode* right;
}treeNode;
void insertITE(treeNode** root, element key)
{
    treeNode *p, *t;
    treeNode *n;

    t = *root;
    p = NULL;

    while (t)
    {
        if (key == t->key) // 이부분에서  제목과 같이 메시지가 뜹니다. 
            return;

        p = t;

        if (key < p->key)
            t = p->left;
        else
            t = p->right;
    }


    n = (treeNode*)malloc(sizeof(treeNode));
    if (!n) return;

    if (p)
    {
        if (key < p->key)
            p->left = n;
        else
            p->right = n;
    }
    else
        *root = n;
}
int main(void)
{
    FILE *fp;
    treeNode* root = NULL;
    element temp;

    fp = fopen("data.txt", "r");
    while (!feof(fp))
    {
        fscanf(fp, "%d", &temp);
        insertITE(&root, temp);
    }
}

이진트리 삽입 알고리즘을 짜고있는데요 주석달린부분에서 자꾸 에러메시지가 뜨고 코드 진행이 되지않습니다. 해결방법이 있을까요?

이미지도 첨부합니다

이미지

이미지

  • element 는 뭔가요? 김호원 2021.10.5 12:46

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)