...
At compile time, string literals are used to create an array of static duration and sufficient length to contain the character sequence and a null termination character. It is unspecified whether these arrays are distinct. The behavior is undefined if a program attempts to modify string literals but frequently results in an access violation, as string literals are typically stored in read-only memory.
...