Этот код копирует содержимое структуры, указанной на sample
, во вновь выделенную структуру:
struct sample_t *dup(struct sample_t *sample) {
struct sample_t *dup_sample = malloc(sizeof *sample);
*dup_sample = *sample;
return dup_sample;
}
Обратите внимание, что в памяти, которую вы выделяете, должно быть достаточно места для данных и размер*sample
(структура), а не размер sample
(адрес).
Что касается копии, достаточно простого воздействия struct1 = struct2
.