繁体   English   中英

用C ++分割数组

[英]Splitting Array in C++

我正在制作一个游戏,并且有一系列的花车可以制作与opengl一起放置的3D模型。 我想做的是将x,y&z坐标分开,并将它们变成多维数组。 我想这样做,以便可以相对于地形调整y位置。 我放置在init函数中的for循环如下:

    for (int x = 0; x < sizeof(desert_scene_plainVerts); x++) {
    if (((x + 3)%3) == 0) {
        //x coord
        terrainxPos[x/3] = desert_scene_plainVerts[x];
    }
    else if (((x + 1)%3) == 0) {
        //z coord
        terrainzPos[(x-2)/3] = desert_scene_plainVerts[x];
    }
    else{
        //y coord
        terrainzPos[(x-1)/3] = desert_scene_plainVerts[x];
    }
}

我在这条线上出现错误:

terrainzPos[(x-1)/3] = desert_scene_plainVerts[x];

错误如下:

Thread 1: EXC_BAD_ACCESS (code=2, address= 0x10 etc.)

有人知道我在做什么错吗?

假设您已经正确声明了terrainxPos[]terrainyPos[]terrainzPos[]terrainyPos[]您的逻辑就可以了。 如果这些是vector ,请确保正确resize()它们的resize()

但是,这样编写的循环可能更清晰,更容易推理:

for (int x = 0, v = 0; x < sizeof(desert_scene_plainVerts); x += 3, v++) {
    terrainxPos[v] = desert_scene_plainVerts[x + 0];
    terrainyPos[v] = desert_scene_plainVerts[x + 1];
    terrainzPos[v] = desert_scene_plainVerts[x + 2];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM