首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

百思不得其解,大脑都死循环了,

2012-03-17 
百思不得其解,大脑都死循环了,求救!!int NUM10 int ja[10][10]{0} for(int i0i10i++) for(int j0

百思不得其解,大脑都死循环了,求救!!
int NUM=10;
int ja[10][10]={0};
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
  ja[i][j]=j+1;

  int *p=&ja[0][0];

  while(NUM)
  {
  p=p+5;//过两次循环后后这里按理说会进入if,可在调试器里直接进入for了.而且*p为1.
  if(*p==0)
  {
  while(*p)
  {
  p+=1;
}
  }
else
{
  for(int i=0;i<10;i++)
  {
  ja[i][*p]=0;
  }

}
  NUM--;
  } 


[解决办法]
LZ定义的二维数组,实际上是100个数字的1维数组,第一次将所有二维在5的数设置成了1,但是这个时候p+=5,的话,移动到了第二行的第一个数字,这个时候这个数值还是1,而你在你的for循环中用的是ja[i][*p],所以你设置的是每行的第1个数,而不是第0个数,第0个数还是原来的1,不会变的,肯定进不到你的if语句里面了!

热点排行