问题描述
- 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;
}
解决方案
你main函数中怎么写的?指针有给它分配空间吗?指针有效吗?
解决方案二:
main函数中你是怎么写的?指针有给它分配空间吗?你的指针有效吗?
解决方案三:
使用就错了,is_leaf()是p的成员函数,怎么可以直接用,应该改成这样就可以运行
解决方案四:
你在主函数中只声明了一个指针,系统不会分配内内存的,直接输出叶子节点要出错的。
解决方案五:
main写错了,没有申请内存空间
解决方案六:
p数据初始化正确吗。指针有效?你出错的地方有非法指针
时间: 2024-08-19 20:20:18