在参数列表构造对象并传内部数据指针是否安全?C++代码合规性疑问
关于C++临时对象与指针传递的问题解答
操作是否安全?
是安全的。临时构造的std::string("Something")生命周期会覆盖整个my_function的调用过程——在函数执行期间,这个临时string对象始终存在,c_str()返回的指针指向的内存也不会被释放,函数可以安全访问该指针指向的内容。
代码是否格式良好?
这段代码完全符合C++标准,格式良好且没有未定义行为。临时对象的构造、c_str()调用以及参数传递的流程都合法合规。
std::string的销毁时机
这个临时std::string对象会在**my_function执行完成之后**销毁。准确来说,是在my_function(std::string("Something").c_str())整个表达式执行完毕的瞬间,临时对象才会被析构,其内部的字符数组内存随之被释放。
内容的提问来源于stack exchange,提问作者BlueCannonBall
相关产品推荐
相关产品推荐

