昨天写一段代码,要加载一个20M的文本,结果竟然跑死了,最后报错
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
网上搜了一大堆,大都说是new完没有delete造成 内存泄露,可是我压根儿没new啊,全部使用静态变量。
后来发现在在一个十万次的for循环中重复使用stringstream和vector<string>没有清空,愚蠢的错误
可以ss.clear(), v.clear()清空状态,但这样既没有效率也不省内存
使用局部变量会避免这些问题,我原本指望将局部变量提到全局会省内存呢。
将局部变量提到全局,不会省内存,我还是想不通,求路过的各路神仙解答