Why is the value pointed by a const char*
being updated by a char array that should just hold a copy of the original string literal that should be stored in the ROM.
I know the basic theory of const char*
, char* const
, const char* const
from this link const char * const versus const char *?
#include <stdio.h>
#include <stdlib.h>
int main(){
char a[] = "ABCD";
char z[] = "WXYZ";
const char* b = a;
a[1] = 'N'; // WHY THIS WORKS AND UPDATES THE VALUE IN B.... a should make its own copy of ABCD and update
// it to NBCD... b should still point to a read only memory ABCD which can't be changed4
//b[1] = 'N'; // THIS FAILS AS DESIRED
printf("%s\n", b); // Output -> ANCD
return 0;
}