[問題] char array access violation

看板C_and_CPP (C/C++)作者 (往五六他爸)時間13年前 (2012/12/26 13:46), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我的程式 在debug的過程中出現 存取資料違規的問題 餵入的資料(Input): 102 , 新左營 , 岡山 , 臺南 預期的正確結果(Expected Output): 車次:102 這是第1停靠站 :新左營 這是第2停靠站 :岡山 這是第3停靠站 :台南 錯誤結果(Wrong Output): 於 0x77c2158e 的 test.exe 中發生未處理的例外狀況: 0xC0000005: Access violation 程式碼(Code):(請善用置底文網頁, 記得排版) char temp[8] ,sta[210][50][8]; int x,y ,z ,stano[210]; for (x=0,z=0;a[x]!=',';x++,z++) temp[z]=a[x]; <- a字串 (102 , 新左營 , 岡山 , 臺南) temp[z]='\0'; x++; stano[i]=atoi(temp); printf("車次:%d",stano[i]); for (y=0;a[x]!='\0';x++,y++) { for (z=0 ; a[x]!=','|| a[x]!='\0' ; x++,z++) { sta[i][y][z] = a[x]; } sta[i][y][z]='\0'; printf("這是第%d停靠站:%s\n",y,sta[i][y]); } 補充說明(Supplement): 拜託大家幫忙找找我程式有問題的地方 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.102.43 ※ 編輯: won56 來自: 140.116.102.43 (12/26 13:52)

12/26 13:55, , 1F
stano 沒有宣告
12/26 13:55, 1F

12/26 14:00, , 2F
int stano[210];
12/26 14:00, 2F

12/26 14:00, , 3F
我宣告在別的地方 還有char sta[210][50][8]
12/26 14:00, 3F
※ 編輯: won56 來自: 140.116.102.43 (12/26 14:01)

12/26 14:10, , 4F

12/26 14:11, , 5F
for 的條件判斷式改成 a[x] != ',' && a[x] != '\0'
12/26 14:11, 5F

12/26 14:13, , 6F
還有上一層 for 的判斷式改成 a[x - 1] != '\0'
12/26 14:13, 6F

12/26 14:14, , 7F
因為 x 會被多加一次
12/26 14:14, 7F

12/26 14:19, , 8F
好厲害! 感謝L大!!
12/26 14:19, 8F
文章代碼(AID): #1GsezCrS (C_and_CPP)
文章代碼(AID): #1GsezCrS (C_and_CPP)