求助!想知道封裝下2.2 老師說的10分21秒的位置,說執行完for之后,指針等于3,還有關于內存的問題
想知道老師說的10分21秒的位置,說執行完for之后,指針等于3,非法才跳出循環,可是指針p不是一直在--嗎,為什么會等于3??j不是應該2、1、0,繼續減為-1,才非法跳出For循環嗎?這樣再進行p++,才剛好和開始分配的內存相同,不然內存這點也解釋不通????到底剛開始申請的哪段內存,后面釋放的如果不加p++又指的是哪段內存??求助大神
想知道老師說的10分21秒的位置,說執行完for之后,指針等于3,非法才跳出循環,可是指針p不是一直在--嗎,為什么會等于3??j不是應該2、1、0,繼續減為-1,才非法跳出For循環嗎?這樣再進行p++,才剛好和開始分配的內存相同,不然內存這點也解釋不通????到底剛開始申請的哪段內存,后面釋放的如果不加p++又指的是哪段內存??求助大神
2016-11-14
舉報
2016-11-14
老師說的是j=3哦。前面從堆上申請了p數組;在對p數組進行實例化時候進行了兩次p++,p走到了第三個元素的位置;
如果只進行兩次p--,那么p 剛好回到第一個元素的位置。但是在對p數組遍歷時候,進行了三次p--。
p已經跑出我們申請的內存范圍了。所以需要再來一次p++,使得p回到內存中的第一個元素的位置上來,在進行
delete[]p 釋放。