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

这是我正在处理的功能。

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);


我通过了一张地图,声明了另外2张地图(tempmap和main_box)。在开始时,我同时将tempmap和main_box都设置为要映射,该函数执行了它要执行的操作(即使不正确也很难)……但是现在在代码的末尾,当我打印所有地图,所有地图时是相同的!!??

当在循环中时,我只更改map,而没有将main_box或tempmap设置为map,那么为什么在函数末尾它们都一样?

这是完整的代码(请谨慎使用很长且写得很差的代码)
http://pastebin.com/SdnJYPqP

任何帮助都将是巨大的,如果我是一个完整而完全的白痴,对不起...

最佳答案

我真傻。 main_boxtempmap是指向map的指针,因此当我更改map并调用所有其他名称时,它调用的是同一件事。谢谢您的帮助!归功于barmar

关于c - 仅分配一次时3个字符串获得相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36654492/

10-11 11:04