好,所以我不知道为什么会这样。
这是我正在处理的功能。
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_box
和tempmap
是指向map
的指针,因此当我更改map
并调用所有其他名称时,它调用的是同一件事。谢谢您的帮助!归功于barmar
关于c - 仅分配一次时3个字符串获得相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36654492/