gpt4 book ai didi

使用赋值而不是 memcpy() 在 C 中复制结构

转载 作者:太空狗 更新时间:2023-10-29 16:27:38 24 4
gpt4 key购买 nike

<分区>

直到最近,我才看到使用 memcpy() 完成结构字段的复制。在类和在线说明中,将一个结构的内容复制到另一个结构中通常看起来像

struct block *b0 = malloc(sizeof(struct block));
struct block *b1 = malloc(sizeof(struct block));
/* populate fields in *b0 */
memcpy(b1, b0, sizeof *b1); /* copy contents of b0 into b1 */
/* free b0, b1 */

但是,这个任务也可以通过一个简单的赋值代替 memcpy() 来完成。

*b1 = *b0; /* dereferenced struct assignment */

为什么它没有被广泛使用(至少在我有限的经验中)有充分的理由吗?这两种方法(赋值和 memcpy())是否等效,或者是否有一些令人信服的理由一般使用 memcpy()

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com