用 vector 的时候,最好别保存其中单独一个元素的指针
[編輯] [转简体] (简体译文)
|
作者:huidong
| 分類:【編程】C/C++
[
10 瀏覽
0 評論
2 贊
3 踩
]
概要
正文
vector 如果新增或者删除元素,其对应的整片内存空间都会重新分配。
所以说,如果你这样做:
vector<int> vec; vec.push_back(123); int* p = &vec[0]; vec.push_back(321);
这样的结果就是:p 会变成野指针……因为插入元素的时候,整个 vector 都重新分配了内存。
所以,别保存 &vec[0],不安全,用的时候直接用 vec[0] 就好了。