當我嘗試向我的二叉樹中添加一個數字時,出現着名的分段錯誤。二叉樹中插入錯誤或指針錯誤
我想這個錯誤是函數inserir_no
中的指針。也許我應該使用指針aux。
#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