[問題] 請問陣列的小問題
我剛剛用C++的時候
發現
char array[5] = "12345";
printf("%s\n", array);
去跑的時候
它會產生overflow的error
但改為char array[5] = "1234";時
就可通過組譯
是因為陣列需要一個空間來儲存'\0'的緣故嗎?
我在C 下面跑的時候
char array[5] = "12345"
可以跑
只不過後面會跑出亂碼
但感覺亂碼不是很長
請問兩者記憶體內容的情形是怎樣呢?
又我宣告 array[5]
沒給初始值
printf("%c\n", array[3]);
出來的圖案是 '?'
請問是真的跑出ascii code
還是其他的原因
又我宣告char array[5]= "";
程式做的動作是否把5個記憶體全部存入'\0'呢?
有請鄉民@.@
--
肝不好 ▁▁ ● ◤ 肝若好
人生是黑白的 ▏ ◤ 考卷是空白的
▏ ◤ 、 ﹐
● ●b 囧 ▎ ●> ● ◤ ▌ ﹍﹍ 0 ▊囧> 幹...
▲ ■┘ ■ ▎ ■ █◤ ▌ ㄏ▋ ︶■
〈﹀ ∥ ▁▁∥ ▎ ﹀〉◤ ▋ ▊ 〈\ ψcockroach727
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.115.251
推
07/05 19:45, , 1F
07/05 19:45, 1F
→
07/05 19:46, , 2F
07/05 19:46, 2F
→
07/05 19:46, , 3F
07/05 19:46, 3F
→
07/05 19:46, , 4F
07/05 19:46, 4F
推
07/05 23:46, , 5F
07/05 23:46, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章