c++ 二叉树 access violation?链表不也是这样的吗?为什么以下代码会出错 求助

#include
using namespace std;
class binary_tree_node
{
public:

    binary_tree_node(const int& init_data = int(),binary_tree_node*init_left=NULL,binary_tree_node* init_right=NULL)
    {
        data_field = init_data;
        left_field = init_left;
        right_field = init_right;
    }
    int& data(){return data_field;}
    binary_tree_node* left(){return left_field;}
    binary_tree_node* right(){return right_field;}
    void set_data(const int& new_data){data_field=new_data;}
    void set_left(binary_tree_node* new_left){left_field=new_left;}
    void set_right(binary_tree_node* new_right){right_field=new_right;}
    const int& data() const {return data_field;}
    const binary_tree_node* left() const{return left_field;} 
    const binary_tree_node* right() const{return right_field;} 
    bool is_leaf()const{return (left_field==NULL)&&(right_field==NULL);}
    bool is_left()const{return (left_field==NULL);}
    bool is_right()const{return (right_field==NULL);}
    private:
    int data_field;
    binary_tree_node* left_field;
    binary_tree_node* right_field;

};

void main()
{
binary_tree_node* p;
cout<is_leaf()<<endl;
}

p数据初始化正确吗。指针有效?你出错的地方有非法指针

使用就错了,is_leaf()是p的成员函数,怎么可以直接用,应该改成这样就可以运行改错加运行

你main函数中怎么写的?指针有给它分配空间吗?指针有效吗?

你在主函数中只声明了一个指针,系统不会分配内内存的,直接输出叶子节点要出错的。

main写错了,没有申请内存空间