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 。