数据指针指向vector内元素,vector扩容后产生的错误。
vector vecInt;int a =1;vecInt.push_back(a);int* pA = &vecInt[0];cout for (int i = 0; i {vecInt.push_back(i);}cout 看上面一段代码,输出结果为:0025DC8:10025DC8:-17891602当vector扩充容量以后,vector申请新的空间,所有原来的数据复制到新的空间上,旧的空间删除。所以数据指针尽量不要指向经常变动的vector数据之上。解决办法有2个:1、直接复制元素实体出去使用。2
原创
2011-02-16 14:28:00 ·
879 阅读 ·
0 评论