用指针复制数据结构
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
就够了
我正在尝试复制包含指针和整数的数据结构。但我不确定这样做是否正确。
这是我的结构:
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
就够了