我试图在位置 *p = 'Z' 的以下程序中了解 char * 分配的分段错误
void main()
{
char *p ="abcdefg";
*p = 'Z';
}
当谷歌搜索时,我确实找到了许多答案的链接,如下所示 1. 这是一个字符串文字,一旦分配就不能改变它的值 2. 字符串文字不能分配给 *p 3. 取一个可以更改的 malloc... 和很快...
但我担心的是,如果字符串文字值不能因为它是常量而改变,那么当我们改变整数的常量值时,为什么我们不会出现分段错误。有人可以帮助我更好地理解这一点吗?
-普拉桑特