清除Objective-C中的int [x] [y]数组

hog*_*i89 0 c memory-management objective-c multidimensional-array ios-4.2

我正在开发一款iPhone游戏.一切都运行正常,但在Objective-C中重置一组int的正确方法是什么?该数组保存每个级别的墙的坐标.每次加载新级别时都会设置数组 - 但是如何"清除"数组呢?

LevelData.h

int wallH[50][2];
int wallV[50][2];
Run Code Online (Sandbox Code Playgroud)

LevelData.m

-(void)setLevelOne {

    // (50, 70)
    wallH[0][0] = 50;
    wallH[0][1] = 70;

    // (50, 90)
    wallH[1][0] = 50;
    wallH[1][1] = 90;

    // And so on ...
    // The same for wallV (Vertical walls in the level)
}
Run Code Online (Sandbox Code Playgroud)

如何"清除"阵列,以便为下一级做好准备?[wallH发布]不起作用 - 我们正在谈论交流阵列:/

Vla*_*mir 8

您可以使用memset函数将数组归零(在您的情况下,您知道数组中的元素数量,以便您可以使用"硬编码"100确定大小):

memset(wallH, 0, 100*sizeof(wallH[0][0]);
Run Code Online (Sandbox Code Playgroud)

  • @ user622470简单的memset(wallH,0,sizeof wallH)更好. (2认同)