1
我正在創建一個二進制樹作爲小項目來學習C.這裏是您需要的所有代碼。現在C初始化總線錯誤
typedef struct {
int value;
struct Node *leftchild;
struct Node *rightchild;
struct Node *parent;
} Node;
typedef struct {
Node *root;
} BinaryTree;
void newBT(BinaryTree *_bt) {
_bt->root = 0;
return;
};
Node* makeNode(int _value) {
Node *node;
node->value = _value;
node->leftchild = 0;
node->rightchild = 0;
node->parent = 0;
return node;
};
void insert(BinaryTree* _bt, int _value) {
_bt->root = makeNode(_value);
return;
};
,我過我的makeNode()函數,它按預期工作,我用它遍歷該列表,如果發現某個節點與給定值返回true的有()函數,返回檢查它否則爲假。它是下面main()中的第一條註釋行。當我將我的BinaryTree傳遞到insert()並使用指針聲明同一行時,我得到一個總線錯誤:10。
int main() {
BinaryTree bt;
newBT(&bt);
//bt.root = makeNode(14);
insert(&bt, 14);
//printf("%d \n", has(&bt, 14));
return 0;
}
有什麼建議嗎?
任何東西都是未定義行爲的有效示例:)(格式化硬盤,莎士比亞版畫,打開烤麪包機)。我認爲你的意思是'常見的例子' – pm100