#include <iostream>
using namespace std;
int * A;
int * B;
void bad(int *a, int *b)
{
a = new int(1);
b = new int(2);
}
void good(int *a, int *b)
{
*a = 3;
*b = 4;
}
void strange(int **a, int **b)
{
*a = new int(5);
*b = new int(6);
}
int main()
{
A = new int(0);
B = new int(0);
cout << "before : " << *A << "," << *B << endl;
bad(A,B);
cout << "after bad : " << *A << "," << *B << endl;
good(A,B);
cout << "after good : " << *A << "," << *B << endl;
strange(&A, &B);
cout << "after strange : " << *A << "," << *B << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50ICogQTsKaW50ICogQjsKCnZvaWQgYmFkKGludCAqYSwgaW50ICpiKQp7CglhID0gbmV3IGludCgxKTsKCWIgPSBuZXcgaW50KDIpOwp9CnZvaWQgZ29vZChpbnQgKmEsIGludCAqYikKewoJKmEgPSAzOwoJKmIgPSA0Owp9CnZvaWQgc3RyYW5nZShpbnQgKiphLCBpbnQgKipiKQp7CgkqYSA9IG5ldyBpbnQoNSk7CgkqYiA9IG5ldyBpbnQoNik7Cn0KaW50IG1haW4oKSAKewoJQSA9IG5ldyBpbnQoMCk7CglCID0gbmV3IGludCgwKTsKCWNvdXQgPDwgImJlZm9yZSA6ICIgPDwgKkEgPDwgIiwiIDw8ICpCIDw8IGVuZGw7CgliYWQoQSxCKTsKCWNvdXQgPDwgImFmdGVyIGJhZCA6ICIgPDwgKkEgPDwgIiwiIDw8ICpCIDw8IGVuZGw7Cglnb29kKEEsQik7Cgljb3V0IDw8ICJhZnRlciBnb29kIDogIiA8PCAqQSA8PCAiLCIgPDwgKkIgPDwgZW5kbDsKCXN0cmFuZ2UoJkEsICZCKTsKCWNvdXQgPDwgImFmdGVyIHN0cmFuZ2UgOiAiIDw8ICpBIDw8ICIsIiA8PCAqQiA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==