Я хочу скопировать две аналогичные структуры в C++. Рассмотрим ниже три структуры.Скопируйте две аналогичные структуры в C++
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 в 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));
Как это сделать? Заранее спасибо
Ваш 'memcpy' относится к адресу' st_a.st_bio', но это уже указатель. Выньте '&'. –
Это то, с чем я ежедневно работаю на большой базе исходных кодов C, из которой генерируются несколько приложений. И это постоянный источник проблем с изменениями и обновлениями. Это похоже на измельченный пример, из которого, по-видимому, нет причин, почему вы хотите сгибать C++ в C, поэтому мне интересно, почему вы это делаете. –
Вместо 'Source_Bio' и' Dest_Bio' вы должны, вероятно, просто «Bio», и является ли экземпляр класса источником или dest контекстуальным на основе вашего кода. – David