1

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));

どうすればこれを行うことができますか? 前もって感謝します

4

2 に答える 2