首页 linux 应用正文

terminate called after throwing an instance of 'stdz::logic_error'

程序编译没有问题,突然在测试的时候出了这样的问题。 terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct NULL not valid 这个问题在我这里是因为调用了getenv,但是在测试的是后getenv的返回值是一个空值,而我没有检查就直接给string赋值。 就造成了c++中string构造的失败。 所以在写法上要注意对这种string空构造的失败。下面的方法可以避免string的空构造。 const char* query_string = getenv("QUERY_STRING"); std::string q_string = query_string ? query_string : "";

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论