Ich habe zwei Strukturen, die einen Knoten eines binären Suchbaums und eine BST darstellen. Aufruf der Add-Methode beim ersten Mal die Ausgabe ist wie erwartet: tree is null
, aber warum ist es immer noch: tree is null
nachdem ich es das zweite Mal anrufe?Struktur Mitglied Zeiger immer noch Null nach dem Zuweisen von Speicher
Wenn ich als Parameter an die Methode add die ganze bst senden, funktioniert es.
#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;
}
Dies ist nicht C. Und in C++, sollten Sie Verwenden Sie nicht das Makro 'NULL', sondern das Schlüsselwort' nullptr'. – Olaf
Sie übergeben 'Baum' Zeiger nicht als Referenz, arbeiten an einem Duplikat ... – LogicStuff
Sie übergeben den Zeiger von Wert – user463035818