【新手求教】

李三思Eleven 2019-10-04 09:23:39
我在写一个象棋项目练手,遇到了一个问题,希望大家指导指导我,多谢~
是这样的,我用一个vector存储了棋盘上的90个交叉点的坐标,用debug输出是这样的:



然后我又声明了一个如下变量,只是声明了,用都没用:


这个时候,我再次输出90个坐标,就变成了下面这样:


求教为什么会这样,谢谢!

...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Italink 2019-10-05
  • 打赏
  • 举报
回复
用到指针了吗?是的话如果调用vector的push_back,超出容量会重新开辟空间导致地址变动
铖邑 2019-10-05
  • 打赏
  • 举报
回复
还是要给出代码才好分析
李三思Eleven 2019-10-05
  • 打赏
  • 举报
回复
我把变量的声明移动到vector声明的前面就行了,但是不知道是什么原因。
李三思Eleven 2019-10-04
  • 打赏
  • 举报
回复
引用 5 楼 yma16 的回复:
难道输出的是地址?
我猜也是,但是我就是不太明白,为什么我定义了一个局部变量而且没使用过,咋就影响vector里元素的值了呢……
yma16 2019-10-04
  • 打赏
  • 举报
回复
难道输出的是地址?
李三思Eleven 2019-10-04
  • 打赏
  • 举报
回复
引用 3 楼 yma16 的回复:
没读懂你的意思
我第一次输出的是我添加进去的坐标,都是整百的。当我声明了一个局部变量,而且没使用的情况下,再次输出vector的元素,值全部都变了。
yma16 2019-10-04
  • 打赏
  • 举报
回复
没读懂你的意思
李三思Eleven 2019-10-04
  • 打赏
  • 举报
回复
没人吗= =
李三思Eleven 2019-10-04
  • 打赏
  • 举报
回复
我只是声明了一个变量,其他什么都没动。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧