私は次のコードを試しました:
#include<iostream>
#include<string>
using namespace std;
string f1(string s)
{
return s="f1 called";
}
void f2(string *s)
{
cout<<*s<<endl;
}
int main()
{
string str;
f2(&f1(str));
}
しかし、このコードはコンパイルされません。
私が思うのは、f1は値で返されるので、一時的なものを作成し、そのアドレスを取得してf2に渡します。
今、私が間違っていると思っているところを説明してください。