记使用STL时遇到的问题
正文
2022-03
在使用STL的过程中,编译正常通过不报错,但一旦使用STL的成员方法,就会出现段错误,程序崩溃。后来经过查阅资料,发现原因所在:不能对STL的容器执行memset清零操作。
原因在于使用STL之后,STL的成员方法在程序中的应用方式其实是一个一个指针,memset清零时,会将这些成员方法的指针也给清零,从而出现段错误。
2022-05
最近在使用STL的过程中碰到了另一个问题:当STL容器大小为0时,如果从容器内取数据,返回结果并不是NULL。NULL只在取数据失败时返回。
思考:STL等容器对象内部会自动定义一些分配内存的结构,memset清零时会破坏其值,导致后续的函数操作崩溃。
评论
0 评论