Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Intermediate
Jul 11, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

String literals are const

According to the C++ standard, the following line is illegal:
char *s = "hello world"; //illegal
Though still supported by many compilers, it's deprecated and should be avoided. The reason is that the literal "hello world" is a constant. Storing it in a non-const array of characters is an error, since it may lead to the following bug:
strcpy(s, "ab"); //OOPS! undefined behavior. attempt to modify a const object. 
The correct form is:
const char *s = "hello world"; //now fine
And as a result, the compiler can detect the bug:
strcpy(s, "abc"); //now a compile-time error: strcpy's first argument should be a non-const char*
Danny Kalev
Comment and Contribute






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



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