偶然间出现std::vector调用push_back()引发的段错误,vector存储的类型是unsigned int,因此百思不得其解。
最后发现是因为vector所属的类重载了operator--(int),调用时却直接用指针--,导致类指针指向了错误的内存,因此其“指向”的类成员,也就是调用push_back()的vector内存也是非法的。
将这句纠正后就能正常运行。
偶然间出现std::vector调用push_back()引发的段错误,vector存储的类型是unsigned int,因此百思不得其解。
最后发现是因为vector所属的类重载了operator--(int),调用时却直接用指针--,导致类指针指向了错误的内存,因此其“指向”的类成员,也就是调用push_back()的vector内存也是非法的。
将这句纠正后就能正常运行。