[問題] struct矩陣形式用法

看板C_and_CPP (C/C++)作者 (不下棋)時間15年前 (2010/09/03 23:13), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串1/1
struct point { int x; int y; }; void main() { point *ptr = new point [10]; ptr[5]->x = 10; //為什麼不能這樣存取? delete [] ptr; //釋放空間時是這樣釋放嗎? } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.81.170

09/03 23:20, , 1F
ptr[5] 等價於 *(ptr + 5), 因為有了dereference 的動
09/03 23:20, 1F

09/03 23:20, , 2F
作(*), 出來的就是一個 point 物件, 存取要用小數點 .
09/03 23:20, 2F

09/03 23:23, , 3F
釋放的方法正確
09/03 23:23, 3F

09/03 23:32, , 4F
可是我釋放後卻還能取得它的值ㄟ
09/03 23:32, 4F

09/03 23:33, , 5F
例如 ptr[5].x = 10;
09/03 23:33, 5F

09/03 23:33, , 6F
delete [] ptr;
09/03 23:33, 6F

09/03 23:34, , 7F
釋放之後卻還能取得ptr[5].x = 10; 的值說
09/03 23:34, 7F

09/03 23:35, , 8F
指標就好像抄著你同學家住址的紙條, 就算房子賣別人,
09/03 23:35, 8F

09/03 23:36, , 9F
在系統給這塊空間其他用途前 它不會被清掉
09/03 23:36, 9F

09/03 23:36, , 10F
你還是可以登門拜訪, 或是闖進去
09/03 23:36, 10F

09/03 23:48, , 11F
http://codepad.org/z97uUqpX 這個研究看看
09/03 23:48, 11F
文章代碼(AID): #1CWH2Iji (C_and_CPP)
文章代碼(AID): #1CWH2Iji (C_and_CPP)