我試圖瞭解過程中在位置* P =「Z」分段故障*分配
void main()
{
char *p ="abcdefg";
*p = 'Z';
}
當谷歌搜索,我發現很多鏈接到以下程序的char *分配分割故障回答如下 1.這是一個字符串文字,一旦賦值不能改變它的值 2.字符串文字不能被分配到* p 3.帶一個malloc可以被改變......等等......
但我的擔心是如果字符串文字值不能改變,因爲它是恆定的,怎麼來當我們改變一個整數的常量值時,我們不會出現分段錯誤。 有人可以幫助我更好地理解這一點嗎?
-Prashanth
看一看:http://stackoverflow.com/questions/718477/string-literals – loxxy
我假設你已經聽說過字符串文字通常稱爲字符串常量。 「恆定」這個詞的哪個部分你不明白? – 2013-08-03 12:22:33
相同的字符串文字概念是否適用於整數? #include void main() { int * a = 123456; * a = 1; } –
pkumarn