char g_arr[] = "123";
char * p_str = "123";
int main()
{
g_arr[1] = '6';
// 为什么该语句会 core
p_str[1] = '6';
}
如上代码,为什么 g_arr 可以修改全局数据,p_str 修改数据会 core
char g_arr[] = "123";
char * p_str = "123";
int main()
{
g_arr[1] = '6';
// 为什么该语句会 core
p_str[1] = '6';
}
如上代码,为什么 g_arr 可以修改全局数据,p_str 修改数据会 core
一般这种是因为你用的指针指向字符串123,而这种定义方法会导致字符串123是一种const char类型的,所以无法修改。如果你用c++的话会明确的告诉你,在定义阶段就回标红报错