Given the code
// somewhere in the program
const char* p1 = \"Hello World\";
// somewhere else in the program
const char* p2 = \"Hello World\";
There is no such requirement. [lex.string]/15:
Whether all string literals are distinct (that is, are stored in nonoverlapping objects) and whether successive evaluations of a string-literal yield the same or a different object is unspecified.
Best you can do is assert()
or just avoid repeating yourself and stick the thing in a function:
char const* my_literal() { return "Hello World"; }
char const* p1 = my_literal();
char const* p2 = my_literal();