2011-10-05 198 views

回答

6

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

6.4.5/6

它是unspeci音響ED這些陣列是否是不同的條件是它們的 元素具有適當的值。如果該程序嘗試 修改這樣一個數組,行爲是不確定的。

+0

感謝您對此進行了詳細的說明和解答,C FAQ絕對是一個寶藏 – Rajan

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

這種嘗試修改字符串文字。官方,這是未定義的行爲。然而,在大多數現代系統中,存儲器存儲字符串文字將被標記爲只讀,因此試圖修改它們會導致錯誤。

0

這類似於Question有關分段錯誤

請參閱此獲取更多信息。

相關問題