2011-10-05 175 views

回答

6

C FAQ 1.32解释了原因。修改字符串文字是非法的。

6.4.5/6

它是unspeci音响ED这些阵列是否是不同的条件是它们的 元素具有适当的值。如果该程序尝试 修改这样一个数组,行为是不确定的。

+0

感谢您对此进行了详细的说明和解答,C FAQ绝对是一个宝藏 – Rajan

3
str = "abcd"; 
    str[0] = 'r'; 

这种尝试修改字符串文字。官方,这是未定义的行为。然而,在大多数现代系统中,存储器存储字符串文字将被标记为只读,因此试图修改它们会导致错误。

0

这类似于Question有关分段错误

请参阅此获取更多信息。

相关问题