修改C函数中的变量或结构

时间:2019-04-12 21:17:55

标签: c function variables automata

我想用C来生活学习C,但这是行不通的。我只是注意到当我尝试修改在函数内部创建的变量时,即使尝试在同一函数内对其进行修改,我的代码也无法正常工作。

当我在注释中传递val = 1并在注释中传递颜色时,代码有效 因此val = 0不会造成问题,而color = {0,0,0,0}都不会引起问题,因为它不会修改变量。 我该如何纠正呢?

void next_grid(int nbc, int nbr,Cell tab[][120],Cell newtab[][120]){

    for (int y = 0; y<120; y++){
        for(int x = 0; x<120; x++){

            int nb_neighbors = count_neighbors(tab,120,120,y,x);
            int val = 0;
            Color color = {0,0,0,0};

            // When a cell is dead
            if (tab[y][x].val == 0)
            {
                if (nb_neighbors == 3)
                {
                    val = 1;
                    color = (Color)  {230,160,0,255};
                }
                else{
                    val = 0;
                    color = (Color)  {0,0,0,255};
                }   

            }

            {
                if (nb_neighbors == 2 || nb_neighbors == 3)
                {
                    val = 1;
                    color = (Color) {230,160,0,255};

                }
                else
                {
                    val = 0;
                    color = (Color) {0,0,0,255};
                } 
            }


            newtab[y][x] = (Cell) {val,x,y,color};
        }
    }   
    // swap array
    for (int y = 0; y<120; y++){
        for(int x = 0; x<120; x++){
            tab[y][x] = (Cell) newtab[y][x];
        }
    } 
}

0 个答案:

没有答案