dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Jul 2, 2001

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Class Template auto_ptr and Arrays


The std::auto_ptr class template handles only a pointer to a single object. This is because it uses scalar delete, never delete[], to destroy the owned object. Therefore, binding auto_ptr to an array of objects would cause undefined behavior. Using of auto_ptr as a char pointer is a common mistake:
 
std::auto_ptr< char> pc (new char[1000];) // bad

In this example, the auto_ptr object is bound to an array of char allocated by new[]. Such an array must be deleted with delete[]. However, because auto_ptr calls delete when its destructor executes, the program's behavior is undefined.

Remember always to bind ats::auto_ptr to a pointer to a single object. If you're looking for an auto_ptr that handles arrays, you can find a custom version of it at the www.boost.org site.
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date