C++ 为什么在下面的代码中出现分段错误?

C++ 为什么在下面的代码中出现分段错误?,c++,segmentation-fault,C++,Segmentation Fault,这是我的代码: char * name[]={"Dileep","Avina"}; name[0][1]='A'; 这里的名称[0]是一个字符*指向字符串文字“Dileep”。那么[0][1]的名称是什么?为什么它会给我运行时错误?“Dileep”和“Avina”是字符串常量。试图改变它们是未定义的行为。如果操作系统将它们放在只读存储器中,则会出现故障。“Dileep”和“Avina”是字符串常量。试图改变它们是未定义的行为。如果操作系统将它们放在只读存储器中,则会出现故障 名称[0]是指向字

这是我的代码:

char * name[]={"Dileep","Avina"};
name[0][1]='A';
这里的名称[0]是一个字符*指向字符串文字“Dileep”。那么[0][1]的名称是什么?为什么它会给我运行时错误?

“Dileep”和“Avina”是字符串常量。试图改变它们是未定义的行为。如果操作系统将它们放在只读存储器中,则会出现故障。

“Dileep”和“Avina”是字符串常量。试图改变它们是未定义的行为。如果操作系统将它们放在只读存储器中,则会出现故障

名称[0]是指向字符串文字“Dileep”的字符*

否,
char*name[]
是伪造的<代码>“Dileep”的类型为
const char[7]
,自C++11以来,由于从字符串文字转换为
char*
,因此不允许使用您的代码<代码>字符*名称[]={“Dileep”,“Avina”}应该是
const char*name[]={“Dileep”,“Avina”}

那么[0][1]的名称是什么

它应该是一个
常量字符

为什么它会给我运行时错误

修改字符串文字是错误的

名称[0]是指向字符串文字“Dileep”的字符*

否,
char*name[]
是伪造的<代码>“Dileep”
的类型为
const char[7]
,自C++11以来,由于从字符串文字转换为
char*
,因此不允许使用您的代码<代码>字符*名称[]={“Dileep”,“Avina”}应该是
const char*name[]={“Dileep”,“Avina”}

那么[0][1]的名称是什么

它应该是一个
常量字符

为什么它会给我运行时错误


修改字符串文字是ub./p>字符串文字是常数,不能更改。可能在使用C++时停止使用代码> const char */>代码或<代码> char */COD>,使用<代码> STD::String 。字符串文字是常数,你不能改变它们。在写C++的时候,停止使用<代码> const char */>代码>或<代码> char */COD>,使用<代码> STD::String 。