C++ で 2 つの類似した構造をコピーしたいと考えています。以下の 3 つの構造を考えてみましょう。
struct Dest_Bio
{
int age;
char name;
};
struct Source_Bio
{
int age;
char name;
};
struct Details
{
int id;
Dest_Bio* st_bio; //Needs to be populated with values from Source_Bio
};
- 「Source_Bio」構造に値が入力されています
- Source_Bio のこれらの値を「Details」構造の st_bio にコピーしたいと考えています。
- Dest_Bio のメンバーを作成したくない
以下を試しました。正常にコンパイルされますが、実行時にプログラムがクラッシュします。
Source_Bio st_ob;
st_ob.age = 5;
st_ob.name = 't';
Details st_a;
st_a.id = 1;
st_a.st_bio = (Dest_Bio*) malloc(sizeof(Dest_Bio));
memcpy((struct Dest_Bio*)&st_a.st_bio, (struct Source_Bio*)&st_ob,sizeof(Dest_Bio));
どうすればこれを行うことができますか? 前もって感謝します