[Home]  [Edit this page]  [Recent Changes]  [Special Pages]  [Help
CppPointer

(C++) Pointer

A pointer is a type that holds an address.

When a pointer is uninitialized, it should point to 0 or NULL. You initialize a pointer using the keyword new, which reserves free space for the dynamically allocated instance and returns the address to it.

C++ does not free this memory on its own. Therefore, you have to call delete to do so.

Reading/writing from/to an uninitialized pointer results in an access violation.

Prefer using a smart pointer over a plain pointer [1,2], e.g. use an std::auto_ptr. Use 0 rather than NULL [3]

{
  MyClass * pClass = new MyClass;
  pClass->doStuff();
  delete pClass
}


Using an auto_ptr:
  1. include <memory>
{ const std::auto_ptr<MyClass> pClass(new MyClass); pClass->doStuff(); //Hey, the same way of accessing the pointed instance! //Done, std::auto_ptr deletes itself when going out of scope }


Avoid non-trivial pointer arithmetic [4].

'Pointer' links

Code links

Reference



last edited (November 8, 2006) by bilderbikkel, Number of views: 5541, Current Rev: 12 (Diff)

[Edit this page]  [Page history]  [What links here]  [Discuss this topic]  [Printer Friendly]  

Members

Username:

Password:


Register
Forgot Password?




Programmers Heaven - for .NET, Java, C/C++ and WEB Developers!
© 1996-2008 Community Networks Ltd. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited. Violators of this policy may be subject to legal action. Please read Terms Of Use and Privacy Statement for more information. Development by Tore Nestenius at .NET Consultant - Synchron Data.