好的,所以我不知道为什么会这样。
继承了我正在处理的功能。
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
任何帮助都会很棒,对不起,如果我是一个完整而彻底的白痴......
答案 0 :(得分:1)
我很愚蠢。 main_box
和tempmap
是指向map
的指针,因此当我更改map
并调用所有其他人时,它会调用相同的内容。谢谢您的帮助!归功于巴马尔