0

我正在尝试为二叉树创建一个新节点,当我尝试对 ->left 和 ->right 进行分配时出现错误。

typedef struct bin_node_t {
     data_t data;
     bst_key_t key;
     struct bin_node *left;
     struct bin_node *right;
} bin_node;

是我对 bin_node 的结构定义。

这是我正在使用的变量:

bin_node *new;
bin_node *node_array[256];

这是我的变量分配:

/* ... code to initialize node_array ... */
new = (bin_node *)malloc(sizeof(bin_node));

这就是我遇到错误的地方:

    new->right = node_array[i+1];
    new->left = node_array[i];

这是我得到的编译器警告:

huffman.c:99: warning: assignment from incompatible pointer type
huffman.c:100: warning: assignment from incompatible pointer type

我的完整代码可在以下位置获得:

http://pastebin.com/iPYP5uVt

4

1 回答 1

5

你的代码中没有struct bin_node。更改struct bin_node *left为:

struct bin_node_t *left;
              ^^^
于 2013-02-24T22:32:41.533 回答