I tried to figure out how new works:
#include <iostream>
using namespace std;
struct munch{
int x;
};
int main(){
munch *a;
//1
cout << a << endl;
cout << a->x << endl;
//1
cout << endl;
//2
a= new munch;
cout << a << endl;
cout << a->x << endl;
//2
cout << endl;
//3
a= new munch;
cout << a << endl;
cout << a->x << endl;
//3
}
What's the difference between 1, 2 and 3? Why does the operator new gives the pointer to struct a new location but doesn't change the value of a->x? But before calling the first instance of new it has a different value than after calling new once?