gpt4 book ai didi

c++ - 指向临时字符串的指针

转载 作者:太空狗 更新时间:2023-10-29 19:45:17 26 4
gpt4 key购买 nike

我们有以下功能:

std::wstring f(const std::string& ref){
return boost::locale::conv::utf_to_utf<wchar_t>(s);
}

const f2(LPCWSTR p){
// use p
}

打电话安全吗:

std::string s = "x";
f2(f(s).c_str());

我的疑问是 f(s) 返回一个临时对象,而 f2 接受一个指向它的指针。


博士。内存点它是“无法寻址的访问”。当我将其替换为:

std::string s = "x";
std::wstring s2 = f(s);
f2(s2.c_str());

博士。内存不指向“不可寻址访问”

最佳答案

只要 f2 不存储指针供以后使用,一切都很好。

在计算子表达式期间创建的任何临时值,都存在到它出现的完整表达式的末尾。因此 f(s).c_str() 将是一个有效的指针调用 f2 的持续时间。

关于c++ - 指向临时字符串的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52419561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com