看板 C_and_CPP 關於我們 聯絡資訊
#include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <conio.h> void main(void) { FILE *fp; int a[16][16],x,y,j,h,v,s,c; char file_name[20]=""; printf("file name:"); scanf("%s",file_name); if((fp=fopen(file_name,"r"))==NULL) { printf("test file name error!!\n"); exit(1); } for(y = 0; y < 16; y++)//將資料讀入矩陣 { for(x = 0; x < 16; x++) { fscanf(fp,"%d",&a[x][y]); } }//將資料讀入矩陣 for(v = 0; v < 16; v+=8)// { for(h = 0; h < 16; h+=8) { if(v==0&&h==0){ cout<<a[h][v]<<endl; j=a[h][v]; }else{ cout<<a[h][v]-j<<endl; j=a[h][v]; } } } fclose(fp); } ------------------------------------------------------------------------ 我是先將.txt檔內的16*16大小的陣列讀入,再做運算,照理說我只要創個a[15][15]的 陣列即可呀,為什麼我陣列大小設15就出錯,非得用16不可(不設16執行會記憶體出錯) ,感覺這樣很浪費空間...懇請各位高手解惑。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.213.220
akasan:a[15][15] = a[0~14][0~14] 02/05 14:48
hardman1110:呃...原來是這樣啊,但是我宣告a[15][15],為何我能印 02/05 14:56
hardman1110:出a[15][15] 不是只有0到14嗎?讓我誤認為a[15][15]是 02/05 14:58
hardman1110:a[0~15][0~15]... 02/05 14:58
chrisdar:C/C++不管陣列下標超界 02/05 15:01