Is returning a string literal address from a function safe and portable?

c++, string

Solution

Is the second alternative safe and portable in this scenario?

Yes! The storage allocation of string literals is static and they persist for the lifetime of the application.

Problem

I need a function to return a string that will only be accessed read-only. The string contents is known at compile time so that I will use a string literal anyway. I can return something like `std::string`: ``` std::string myFunction() { return "string"; } ``` or return `const char*`: ``` const char* myFunction() { return "string"; } ``` Is the second alternative safe and portable in this scenario?

Original source

Related problems