[問題] 動態配置的基本問題~

看板C_and_CPP (C/C++)作者 (Arim5566)時間16年前 (2009/11/20 21:56), 編輯推噓2(207)
留言9則, 5人參與, 最新討論串1/1
以下是我有問題的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

11/20 22:07, , 1F
你不能這麼做 程式不會掛掉只是運氣好
11/20 22:07, 1F

11/20 22:07, , 2F
C++不會檢查ptr指向的目標長度,如果會跑那只能說是
11/20 22:07, 2F

11/20 22:07, , 3F
你開始瞭解的指標的威力了吧
11/20 22:07, 3F

11/20 22:08, , 4F
原本要說的樓上說了XD
11/20 22:08, 4F

11/20 22:09, , 5F
這是C的強大 也是很容易寫錯的地方 XD (Java就會抓了)
11/20 22:09, 5F

11/20 22:11, , 6F
所以正常寫法應該要寫第二種囉?
11/20 22:11, 6F

11/20 22:12, , 7F
Yes
11/20 22:12, 7F

11/20 22:12, , 8F
去讀作業系統有關記憶體保護的描述,就知道前因後果
11/20 22:12, 8F

11/21 10:45, , 9F
資料結構有
11/21 10:45, 9F
文章代碼(AID): #1B1g0WJc (C_and_CPP)
文章代碼(AID): #1B1g0WJc (C_and_CPP)