2016-04-28 84 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])]; 

注意:沒有隱含的索引檢查,因此,如果您的花車超出範圍(負數或>寬/高),你最有可能碰上一個分割故障...

相關問題