I have a simple question.
Consider the code below:
#include <iostream>
struct Node {
int data;
Node *left;
Node *right;
Node(int pData) : data(pData), left(nullptr), right(nullptr) {}
};
void delete_node(Node *node) {
delete node;
node = nullptr;
}
int main() {
Node *node1 = new Node(1);
Node *node2 = new Node(2);
delete_node(node1);
delete node2;
node2 = nullptr;
if (node1) std::cout << "node1: " << node1->data << std::endl;
if (node2) std::cout << "node2: " << node2->data << std::endl;
return 0;
}
Which produces the output:
node1: -572662307
Which I find odd since I set node1 = nullptr
in function delete_node
. Can someone please explain?