/////////////////////////////////////////////////////////////// // exmp2d.cpp - passing pointers by value // // Jim Fawcett, ELE591\791, Su'99 // // build: cl /GX exmp2ld.cpp // /////////////////////////////////////////////////////////////// #include #include #include using namespace std; //----< demonstrate pass by value >---------------------------- void passByValue(double **ppDouble) { cout << "\n\n inside passByValue(...)"; double *pDouble = new double; if(!pDouble) throw "\n memory allocation failure\n\n"; *pDouble = 2.5; *ppDouble = pDouble; // changing poiner address cout << "\n value of *ppDouble is " << *ppDouble; cout << "\n value pointed to by ppDouble is " << **ppDouble; } //----< test >------------------------------------------------- void main() { cout << "\n before calling passByValue(...)"; double target = -1.0; double *pTarget = ⌖ double **ppDouble = &pTarget; cout << "\n value of *ppDouble is " << *ppDouble; cout << "\n value pointed to by ppDouble is " << **ppDouble; passByValue(ppDouble); cout << "\n\n after calling passByValue(...)"; cout << "\n value of *ppDouble is " << *ppDouble; cout << "\n value pointed to by ppDouble is " << **ppDouble << "\n\n"; }