为什么第二代码中的分段错误?

时间:2012-12-19 13:47:08

标签: c string segmentation-fault

  

可能重复:
  Why is this C code causing a segmentation fault?

char array[6] = "kapil";  
array [0] =  'K';    

此代码运行正常。
以下代码产生分段错误?

char* array = "kapil";  
array [0] =  'K';   

为什么首先不产生seg-fault。

2 个答案:

答案 0 :(得分:3)

char* array = "kapil";声明一个字符串文字,相当于const char*。这可能存在于只读存储器中,无法修改。

严格地说,尝试修改它会导致未定义的行为,但实际上可能会出现seg错误。

答案 1 :(得分:1)

char* array = "kapil";使用此类声明,它在只读上下文中复制kapil,您可以更改其内容。