私はバイナリ検索ツリーとbstのノードを表す2つの構造体を持っています。最初に出力が期待どおりのときにaddメソッドを呼び出します:tree is null
、それはまだですか:tree is null
私は2回目を呼び出した後ですか?構造体のポインタはまだメモリを割り当てた後でnullです
パラメータとしてaddメソッドにbst全体を送信すると動作します。
#include <iostream>
using namespace std;
struct node
{
int data;
node* right = NULL;
node* left = NULL;
};
struct bst
{
node* root = NULL;
};
void add(node* tree)
{
if (tree == NULL)
{
cout << "Tree is NULL "<<endl;
tree = new node;
}
else cout << "Not NULL"<<endl;
}
int main()
{
bst* tree = new bst;
add(tree->root);
add(tree->root);
system("pause");
return 0;
}
をこれはC.ではなく、C++で、あなたがすべき'NULL'マクロを使わず、' nullptr'キーワードを使います。 – Olaf
あなたは参照によって 'tree'ポインタを渡していません... – LogicStuff
あなたは値でポインタを渡しています – user463035818