char array[6] = "kapil";
array [0] = 'K';
此代码运行正常。
但以下代码产生分段错误?
char* array = "kapil";
array [0] = 'K';
为什么首先不产生seg-fault。
答案 0 :(得分:3)
char* array = "kapil";
声明一个字符串文字,相当于const char*
。这可能存在于只读存储器中,无法修改。
严格地说,尝试修改它会导致未定义的行为,但实际上可能会出现seg错误。
答案 1 :(得分:1)
char* array = "kapil";
使用此类声明,它在只读上下文中复制kapil
,您可以更改其内容。