이진 트리에 숫자를 추가하려고하면 유명한 세그먼트 화 오류이 표시됩니다.이진 트리의 삽입 오류 또는 포인터 오류
오류가 포인터 inserir_no
에있는 것 같습니다. 어쩌면 내가 포인터 보조를 사용해야합니다.
#include <stdio.h>
#include <stdlib.h>
/* create a node */
struct no {
int info;
struct no *esq;
struct no *dir;
};
/* function prototypes */
void inserir_no(struct no *arv, int x);
void inserir_no(struct no *arv, int x)
{
if(arv == NULL) {
printf("foi");
arv = (struct no *) calloc(1, sizeof(struct no));
arv->info = x;
arv->esq = NULL;
arv->dir = NULL;
}
else if(x < arv->info) {
inserir_no(arv->esq, x);
}
else {
inserir_no(arv->dir, x);
}
}
int main(void)
{
struct no *a;
int valor;
a = NULL;
/* fazer um menu depois */
scanf("%d", &valor);
inserir_no(a, valor);
printf("\nDADOS:\n%d", a->info);
return 0;
}
의 것인가? 이를 통해 오류가 어디에서 발생했는지 알 필요가없고 문제를 발견하는 데 도움이 될 수도 있습니다. – dmckee