[問題] 為什麼超出陣列範圍的變數還有位址呢
今天看到一個code
int a[3];
int *ptr;
然後下面的for迴圈又有
for(;ptr<&a[3];ptr++)
條件判斷用到了&a[3]我就覺得奇怪
為什麼這樣還能過
置底的十誡也說不要去存取超出陣列範圍的大小
因為效率考量,所以compiler不會去檢查
可是想不透為什麼我宣告a[3],超出陣列範圍的a[3]、a[4]、a[5]、…
這些陣列還會有address呢??
而不是直接配一個固定大小的a[0]~a[2]
thanks!!
--
我就像一隻在天空自由傲翔的老鷹
看盡世間男女分分合合喜怒哀樂恩怨情仇...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.97.37
→
05/12 21:55, , 1F
05/12 21:55, 1F
→
05/12 21:55, , 2F
05/12 21:55, 2F
推
05/12 21:57, , 3F
05/12 21:57, 3F
→
05/12 21:57, , 4F
05/12 21:57, 4F
推
05/12 22:29, , 5F
05/12 22:29, 5F
→
05/12 22:29, , 6F
05/12 22:29, 6F
→
05/12 22:30, , 7F
05/12 22:30, 7F
推
05/12 22:32, , 8F
05/12 22:32, 8F
推
05/12 22:35, , 9F
05/12 22:35, 9F
推
05/12 22:43, , 10F
05/12 22:43, 10F
推
05/12 23:00, , 11F
05/12 23:00, 11F
→
05/12 23:03, , 12F
05/12 23:03, 12F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章