用指针复制数据结构

Duplicating a data structure with pointers

我正在尝试复制包含指针和整数的数据结构。但我不确定这样做是否正确。

这是我的结构:

struct sample_t {
    int x; 
    void *y;   
};

这是我的函数:

struct sample_t *dup(struct sample_t *sample){

  struct sample_t *dup_sample = malloc(sizeof (sample));

  dup_sample->x = sample->x;

  dup_sample->y     = malloc(sizeof(sample->y));
  dup_sample->y     = sample->y

  return dup_sample;
}

此代码将指向 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就够了