xy2017
xy2017
采纳率100%
2017-01-17 14:07

用c++ vector储存指针,迭代时数据消失

30

我在一个类里加了一个vector容器,然后在这个类的一个成员函数里用for循环迭代,但是代码一运行到for,容器的内容就没了,然后出错,如图
图片说明
图片说明
图片说明
补充:
在任意成员函数里一运行到begin(),size()等vector操作就会这样,在主程序里不会,
我存指针是为了跟踪另一个类的成员变化,
win32程序
代码过长没放,如果需要更多信息请在评论里说下

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • strongerzhi Kolamu 4年前

    看下你的getdata吧,可能是地址无法访问

    点赞 1 评论 复制链接分享
  • xy2017 xy2017 4年前

    好吧,在迭代之前我声明了一个类,这个类有16个float,我以为float是32位,所以在这个类的构造函数里用memset清零16乘32,
    看来memset用的是字节,应该是16乘4...
    所以把后面的内存清掉了。

    点赞 评论 复制链接分享
  • oyljerry oyljerry 4年前

    你这个vector会不会有其他地方在修改,有没有注意线程同步

    点赞 评论 复制链接分享