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;
}