This question might be stupid, but I've been wondering what happens if you have:

```
struct List {
    int x;
    List *next;
};
struct List *start = nullptr;
struct List *tmp = start->next; 

```

What happens to tmp?

I've tried compiling it and I get no errors. If I output address of `start` I get 0, but if I output `tmp` I get nothing.