[問題] 錯誤訊息請教

看板C_and_CPP (C/C++)作者 (0.0)時間15年前 (2010/10/24 21:17), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 我要讓我的程式可以產生出locs的檔案,但卻會出現一個錯誤 雖然我按繼續他能然會執行,但我之前有時候按繼續執行會出現另外一個錯誤 希望得到的正確結果: 可以正常地跑出我要的檔案沒有錯誤 程式跑出來的錯誤結果: Run-Time Check Failure #2 - Stack around the variable 'z2' was corrupted. 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ 有問題的code: (請善用置底文標色功能) int readmv(int mvidx,short ***mxp,short ***myp,int width,int height) { FILE *mvx,*mvy; int x,y; char z3[]="000",z2[]="00",z1[]="0",z0[13],zx[13],zy[13]; char fx[13],fy[13],e[]=".txt"; itoa(mvidx,z0,10); printf("%s\n",z0); if(mvidx<10) { strcat(z2,z0); strcpy(zx,z2); strcpy(zy,z2); } else if(mvidx<100) { strcat(z1,z0); strcpy(zx,z1); strcpy(zy,z1); } else { strcpy(zx,z0); strcpy(zy,z0); } strcpy(fy,"mvv"); strcat(fy,zy); strcat(fy,e); printf("%s \n",fy); strcpy(fx,"mvx"); strcat(fx,zx); strcat(fx,e); printf("%s \n",fx); mvx=fopen(fx,"r"); mvy=fopen(fy,"r"); for(y=0;y<height;y++) { for(x=0;x<width;x++) { fscanf(mvx,"%d ", &mxp[y][x][0]); fscanf(mvy,"%d ", &myp[y][x][0]); } } fclose(mvx); fclose(mvy); return 0; } 補充說明: 如果我把z2改成000 又會出現stream !=null 這又是代表什麼意思?? 謝謝各位指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.90

10/24 21:18, , 1F
看起來是陣列存取越界了
10/24 21:18, 1F

10/24 21:22, , 2F
雖然不知道你要做什麼,但總覺得可以用sprintf化簡程式
10/24 21:22, 2F

10/24 21:26, , 3F
我是想讀取我之前所產生frame向量位置的檔案 然後產生
10/24 21:26, 3F

10/24 21:27, , 4F
一個LOCS的檔案 因為是新手所以可能問題比較多
10/24 21:27, 4F

10/24 21:33, , 5F
char z3[100]="000",z2[100]="00",z1[100]="0"
10/24 21:33, 5F

10/24 21:33, , 6F
先試試看這樣 把[]裡面擺個100 還會不會有一樣的錯誤?
10/24 21:33, 6F

10/24 21:44, , 7F
好像可以了 謝謝 stream !=null 就是這問題吧?
10/24 21:44, 7F
文章代碼(AID): #1Cn37f7U (C_and_CPP)
文章代碼(AID): #1Cn37f7U (C_and_CPP)