看板 C_and_CPP 關於我們 聯絡資訊
以下是我有問題的code char *ptr=new char; ptr[0]='a'; ptr[1]='b'; ptr[2]=NULL; 在這邊想問一下 我第一行系統會分配一塊可以放char資料的記憶體,使ptr指向它 可是為什麼我還可以用陣列的方式來儲存呢 不是只有分配一塊空間而已嗎 如果要用陣列的方式表示,第一行應該要寫char *ptr=new char[3];吧?? 表示說分配三塊空間,使ptr指向第一塊空間吧?? 這邊觀念可能有點模糊,請版友不吝指教 謝謝 -- ~宅男的四個徵兆~ ∠□ ○ ! * \○/ ★    (○ ? ╦╦└□ " ○□═ □   □> ║║√√ ╦══╦ ∥    |\ 一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.200.202
james732:你不能這麼做 程式不會掛掉只是運氣好 11/20 22:07
abilitylife:C++不會檢查ptr指向的目標長度,如果會跑那只能說是 11/20 22:07
twotwoone:你開始瞭解的指標的威力了吧 11/20 22:07
abilitylife:原本要說的樓上說了XD 11/20 22:08
james732:這是C的強大 也是很容易寫錯的地方 XD (Java就會抓了) 11/20 22:09
Arim:所以正常寫法應該要寫第二種囉? 11/20 22:11
james732:Yes 11/20 22:12
twotwoone:去讀作業系統有關記憶體保護的描述,就知道前因後果 11/20 22:12
Knighter:資料結構有 11/21 10:45