仅分配一次时,3个字符串获得相同的值

时间:2016-04-15 18:32:45

标签: c string loops

好的,所以我不知道为什么会这样。

继承了我正在处理的功能。

while (map[x] && height <= box.size)
{
    width = 0;

    while (width <= box.size && height <= box.size)
    {
        if (map[x] == '.' || map[x] == 'x')
        {
            main_box[x] = 'x';
            n_of_fill++;
            width++;
        }
        if (map[x] == 'o')
            break;
        x++;
    }
    //To move a line down and start at the beginning of that line
    x = x + true_y + 1 - width;
    box.size = width;
    height++;
}
printf("3 \n\n%s\n\n%s\n\n%sfill = %i, width = %i, height = %i\n\n", main_box, map, tempmap, n_of_fill, width, height);

我传递了一张地图,声明了另外两张地图(tempmap和main_box)。在一开始我设置了tempmap和main_box来映射,该函数执行它告诉要做的事情(甚至很难不对)...但是现在在代码的末尾,当我打印所有的地图时,所有的地图是一样的!! ??

当在循环中我只改变地图,并且我没有设置main_box或tempmap来映射,那么为什么它们在函数的末尾都是相同的?!!

继承人的完整代码(谨慎很长,代码写得非常糟糕) http://pastebin.com/SdnJYPqP

任何帮助都会很棒,对不起,如果我是一个完整而彻底的白痴......

1 个答案:

答案 0 :(得分:1)

我很愚蠢。 main_boxtempmap是指向map的指针,因此当我更改map并调用所有其他人时,它会调用相同的内容。谢谢您的帮助!归功于巴马尔