[問題] 陣列 Runtime error
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Dev_CPP
問題(Question):
假如先宣告一陣列為:
char a[10]; // a[0]~a[9]
使用 for(int i=0; a[i] ; i++)
如上在 i = 10 時 , a[i] 會存取到 a[10] 之非法記憶體 而 break 掉
但不會發生 runtime error.
但在 使用 if(a[10]) 作為判斷時 一樣存取到 a[10] 之非法記憶體
此時即會造成 runtime error.
想請問這兩者之間的差別 還有第一個for的用法是否有其風險在
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.108.205.21
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1488346376.A.2D8.html
→
03/01 13:41, , 1F
03/01 13:41, 1F
→
03/01 13:42, , 2F
03/01 13:42, 2F
→
03/01 13:42, , 3F
03/01 13:42, 3F
→
03/01 13:42, , 4F
03/01 13:42, 4F
→
03/01 13:43, , 5F
03/01 13:43, 5F
推
03/01 13:45, , 6F
03/01 13:45, 6F
→
03/01 13:49, , 7F
03/01 13:49, 7F
→
03/01 13:49, , 8F
03/01 13:49, 8F
推
03/01 14:11, , 9F
03/01 14:11, 9F
推
03/01 16:02, , 10F
03/01 16:02, 10F
→
03/01 16:03, , 11F
03/01 16:03, 11F
推
03/01 16:03, , 12F
03/01 16:03, 12F
→
03/01 16:03, , 13F
03/01 16:03, 13F
→
03/01 16:03, , 14F
03/01 16:03, 14F
→
03/01 16:04, , 15F
03/01 16:04, 15F
推
03/01 16:08, , 16F
03/01 16:08, 16F
→
03/01 16:12, , 17F
03/01 16:12, 17F
→
03/01 16:13, , 18F
03/01 16:13, 18F
推
03/02 00:24, , 19F
03/02 00:24, 19F
→
03/02 00:24, , 20F
03/02 00:24, 20F
→
03/02 00:25, , 21F
03/02 00:25, 21F
→
03/02 00:59, , 22F
03/02 00:59, 22F
→
03/02 01:03, , 23F
03/02 01:03, 23F
→
03/02 01:10, , 24F
03/02 01:10, 24F
→
03/02 08:22, , 25F
03/02 08:22, 25F
推
03/02 10:04, , 26F
03/02 10:04, 26F
→
03/02 10:05, , 27F
03/02 10:05, 27F
→
03/02 10:06, , 28F
03/02 10:06, 28F
→
03/02 10:06, , 29F
03/02 10:06, 29F
→
03/02 10:07, , 30F
03/02 10:07, 30F
→
03/02 10:08, , 31F
03/02 10:08, 31F
→
03/02 10:08, , 32F
03/02 10:08, 32F
→
03/02 10:31, , 33F
03/02 10:31, 33F
→
03/02 10:35, , 34F
03/02 10:35, 34F
→
03/02 10:36, , 35F
03/02 10:36, 35F
→
03/02 10:39, , 36F
03/02 10:39, 36F
推
03/02 11:00, , 37F
03/02 11:00, 37F
→
03/02 11:12, , 38F
03/02 11:12, 38F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
20
33