簡體   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