非常简单的循环非常奇怪的结果

时间:2012-01-21 21:06:44

标签: objective-c

我知道,这是最简单的事情,但它不起作用!

我有这个:

static float px=50;
static float py=40;

   for(int j=0;j<10;j++)
    {
       for(int i=0;i<10;i++)
       { 
           pixels[i]=CGPointMake( px+(i*32),   py+(j*32)   ); 
       }

    }



  for(int i=0;i<10;i++)
         NSLog(@"%@",NSStringFromCGPoint(pixels[i]));

似乎j得到了垃圾值。 我得到前10个点良好 point.x值,奇怪 point.y值,这不是增量。

3 个答案:

答案 0 :(得分:2)

您只需按pixelsi编制索引,因此您为每pixels /行编写相同的j条目。

您不能为pixels提供声明,但我猜您想要pixels[i + j*10]之类的内容。

答案 1 :(得分:1)

有效只是最后一个循环 j ,结果与这种情况相同:

//for(int j=0;j<10;j++)
j=9;
{
   for(int i=0;i<10;i++)
   { 
       pixels[i]=CGPointMake( px+(i*32),   py+(j*32)   ); 
   }

}
我认为,你需要像素数组:

CGPoint pixels[10][10];

并在循环中:

pixels[i][j]=CGPointMake( px+(i*32),   py+(j*32)   ); 

答案 2 :(得分:0)

问题可能是你的像素数组只有10个索引被访问,因为索引i只从0到9,与j无关。 因此,索引[10]及以上将是无稽之谈,因为它们永远不会被写入。