推 VictorTom:1. 一般指標接到new/malloc出來的空間沒辦法用sizeof取 11/12 12:23
→ VictorTom: 大小; 對該指標sizeof出來的是指標本身的大小, 而不 11/12 12:24
→ VictorTom: 是指到空間的大小; sizeof的算法只能用於固定配置的. 11/12 12:25
→ VictorTom:2. new是跟OS要一塊記憶體來用, delete是跟OS說那塊你不 11/12 12:25
→ VictorTom: 用了; delete掉還去存取該空間偶爾仍能得到正確的結 11/12 12:26
→ VictorTom: 果是因為它還沒被其他地方佔用, 事實上這樣的作法是 11/12 12:26
→ VictorTom: 危險而且錯誤的; delete兩次會錯是因為OS發現你嘗試 11/12 12:27
→ VictorTom: 歸還一個根本不屬於你的記憶體空間. 11/12 12:27
推 VictorTom:3. 最後, 胡搞記憶體之後, 會發生什麼事情根本沒辦法保 11/12 12:29
→ VictorTom: 證, 個人覺得沒必要去研究一個錯誤行為產生的不確定 11/12 12:29
→ VictorTom: 結果....@_@" 11/12 12:30
推 walm20: strlen(ptr) 11/12 13:45
→ james732:strlen恐怕不是這樣用的...XD 11/12 13:53
→ walm20:sorry, 查了一下strlen是用在c string.. 11/12 14:02
→ walm20:原文中有個很大的錯誤 delete[] pt[i]; 11/12 14:02
→ walm20:delete pt[i]; 11/12 14:04
→ walm20:應改為這樣 11/12 14:05
推 QQ29:delete [] pt[i]沒錯吧@@ pt[i]=new了一塊[]不是嘛 11/12 14:07
推 VictorTom:原po那樣寫才是對的, delete []x; 用在x是要了一個array 11/12 14:07
→ VictorTom:回來而不是單個instance. 11/12 14:08
→ VictorTom:另外, strlen只能找到char指標開始到遇到'\0'的長度.... 11/12 14:09
→ VictorTom:不是來算可用空間/array element數; 而且不是char型態一 11/12 14:09
→ VictorTom:樣沒有用.... 11/12 14:09
→ walm20:恩...又看錯 0rz 11/12 14:11
→ kyokb:感謝大家! 我懂了 11/12 15:23