2016-04-28 98 views
-9

我基本上有一个坐标系,我想通过坐标索引访问数组。 posVector2f(我使用sfml)。错误:无效类型'int [200] [float]'数组下标

  int iposy=static_cast<int>(pos.y); 
      int iposx=static_cast<int>(pos.x); 
      if(col[iposy][iposx]==N) 
       col[iposy][iposx]=i; 
      else{ 
      int vx1 = vx[i]; 
      int vx2 = vx[(col[iposy][iposx])]; 
      int vy1 = vy[i]; 
      int vy2 =vy[(col[iposy][iposx])]; 

我收到以下错误:

error: invalid types ‘int [200][float]’ for array subscript 
     int vx2 = vx[(col[iposy][iposx])]; 

error: invalid types ‘int [200][float]’ for array subscript 
     int vy2 =vy[(col[iposy][iposx])]; 
+2

好主意张贴col,vx,vy的声明... – Aconcagua

+0

@Aconcagua int col [HEIGHT + 1] [WIDTH + 1]; \t对(INT I = 1; I <= HEIGHT;我++) \t \t对(INT J = 1;Ĵ<=宽度; J ++) \t \t \t COL [i] [j] = N; – RealGas

+0

vx,vy?顺便说一句:你没有初始化col的第一行和第一列,将它留在0(如果是全局或类变量)或未初始化(如果在堆栈上)。这是打算? – Aconcagua

回答

1

从注释 所以:如果col float col[H][W];,您通过一个浮动试图指数VX/VY。你将不得不投再次诠释:

int vx2 = vx[static_cast<int>(col[iposy][iposx])]; 
int vy2 = vy[static_cast<int>(col[iposy][iposx])]; 

注意:没有隐含的索引检查,因此,如果您的花车超出范围(负数或>宽/高),你最有可能碰上一个分割故障...

相关问题