-2

可能重复:
为什么这个 C 代码会导致分段错误?

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

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

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

为什么首先不产生段错误。

4

2 回答 2

3

char* array = "kapil";声明一个字符串文字并且等价于const char*. 这很可能存在于只读存储器中并且无法修改。

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

于 2012-12-19T13:48:30.100 回答
1

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

于 2012-12-19T13:50:30.217 回答