作者hardman1110 (硬汉)
看板C_and_CPP
标题[问题] 有关阵列大小出错
时间Thu Feb 5 14:31:36 2009
#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
1F:→ akasan:a[15][15] = a[0~14][0~14] 02/05 14:48
2F:→ hardman1110:呃...原来是这样啊,但是我宣告a[15][15],为何我能印 02/05 14:56
3F:→ hardman1110:出a[15][15] 不是只有0到14吗?让我误认为a[15][15]是 02/05 14:58
4F:→ hardman1110:a[0~15][0~15]... 02/05 14:58
5F:推 chrisdar:C/C++不管阵列下标超界 02/05 15:01