String Objects and C-strings: Caveats

String Objects and C-strings: Caveats

The standard string class has a dual interface: it supports both C-style strings as well as string objects in various operations:

 const char text[] = "hello world";string s = text;  //initialization of string object with a C-style stringstring s2(s);  //copy construction

This duality allows backward compatibility with legacy code. It should be noted, however, that for efficiency reasons, string member functions always assume that the const char * given as an argument is never NULL and that it points to a valid array of characters (meaning: it’s not a dangling pointer). Failing to supply a valid argument yields undefined behavior.


Share the Post: