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


Tip of the Day
Language: C++
Expertise: All
Mar 5, 1999

std::string Should Never be Initialized With a NULL Pointer

You can initialize std::string with a pointer to char. However, it does not check the pointer. When the pointer happens to be NULL the results are undefined:
 
#include<string>
using std::string;

const char * getDescription(int symbol); // returns NULL when symbol cannot not found

void writeToString  (string & str, int symbol){
  str = getDescription(symbol);  // sloppy: initializer might be NULL; undefined behavior in this case
}
To be on the safe side, you should explicitly check the pointer before you assign it:
 
void writeToString ( string & str, int symbol){
  const char *p = getDescription(symbol); 
  if (p) { 
    str = p; // now safe
  }
}
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date