我基本上有一个坐标系,我想通过坐标索引来访问数组。 pos
是Vector2f
(我使用的是sfml)。
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])];
答案 0 :(得分:1)
所以从评论:如果col是float col[H][W];
,你试图通过浮点索引vx / vy。您将不得不再次转换为int:
int vx2 = vx[static_cast<int>(col[iposy][iposx])];
int vy2 = vy[static_cast<int>(col[iposy][iposx])];
注意:没有隐式索引检查,因此如果您的浮点数超出范围(负数或&gt; WIDTH / HEIGHT),您很可能会遇到分段错误......