私は C++ で構造体型について学んでおり、構造体型変数のメンバーの値を変更する関数を作成しようとしました。ただし、予期しない出力が生成され、なぜこれが起こっているのかわかりません。/構造体型をテストするプログラム/
#include <iostream>
#include <cstring>
using namespace std;
struct myStruct
{
string a;
string b;
int c;
float d;
};
void assignValues(myStruct myobj)
{
myobj.a = "foobar";
myobj.b = "Foo Bar";
myobj.c = 12;
myobj.d = 15.223;
}
int main()
{
myStruct x;
cout << x.a <<endl;
//x.a = "Hello world";
//x.b = "This is C++";
//x.c = 10;
//x.d = 13.1332;
assignValues(x);
cout << x.a<<endl;
cout << x.b << endl;
cout << x.c << endl;
cout << x.d << endl;
}
assignValues() 関数の代わりに (コード内でコメントアウトした) 個々の割り当てステートメントを使用すると、期待どおりの出力が得られます。
PS: 出力に期待する値は次のとおりです: foobar、Foo Bar、12、15.223