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?
 
    