don@zardoz.coral.com (Don Dewar) (01/25/91)
I tried to send this directly to the person, but it failed. Please
put your address in your mail somewhere.
) Return-Path: <help-g++-request@prep.ai.mit.edu>
) Date: 21 Jan 91 05:52:08 GMT
) From: uunet!csc1.anu.edu.au!csc1!drw900 ("Drew R Whitehouse")
) Organization: Australian National University Supercomputer Facility
) Subject: help with "new" operator...
) Sender: uunet!prep.ai.mit.edu!help-g++-request
) To: help-g++@prep.ai.mit.edu
)
)
) I'm having trouble understanding the functionality of "new" -
) why does the following bit of code crash ? Wht isn't the value of p in
) the function being returned ? (Yes, I'm new to c++...)
)
) Any help appreciated.
) Drew.
)
) --------------------------------------------------------------
)
) #include <stream.h>
)
) class junk
) {
) private:
) int a;
) public:
) junk() { a = 42; }
) void print (char* mess) { cout << mess << a << "\n"; }
) };
)
) void allocate(junk*);
)
) main()
) {
) junk* jp;
) junk* jj = new junk;
)
) allocate(jp);
)
) jj->print("allocated in main() - ");
) jp->print("allocated by allocate() -");
) }
)
) void allocate (junk* p)
) {
) p = new junk;
I believe you problem is here. It should read :
p = new junk();
) p->print("allocated inside allocate() ");
) }
)
) -------------------------------------------------------------------------
+---------+
| Coral |
|@@@@@*@**|
|@@*@@**@@| Don Dewar
|*@@**@@@@| Coral Network Corporation, Marlborough, MA
|@***@@@@@| Internet: don@coral.com
|@@**@@@@@| Phone: (508) 460-6010
|*********| Fax: (508) 481-6258
|Networks |
+---------+
End of returned message